aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2008-01-30Be more explicit about what flavors of initlistexpr's we can see. I don'tChris Lattner
know if all of this is exactly right, but it seems like the right thing to aim for. Steve, please review. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46549 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-30move some constructors out of line and fix indentation in ↵Chris Lattner
ObjCAtThrowStmt::getSourceRange. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46547 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-30Make sure to emit all the arguments to a function call. This fixes the Eli Friedman
codegen of calls to functions without a prototype and varargs functions, including printf. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46543 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-30Many refinements to Sema::MergeVarDecl(). This routine still needs some ↵Steve Naroff
re-work to fully handle tentative decls. This includes a fix to bz1908. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46540 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Added method "markInfeasible" to GRBranchNodeBuilder to disable theTed Kremenek
auto-propagation of state along a branch. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46537 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Implemented more boilerplate in GREngine for processing branches. NowTed Kremenek
we automatically generate a new successor node along an edge if the checker did not explicitly do so (i.e., we just propagate the current state). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46536 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Fixed bit-setting bug for ExplodedNodeImpl::NodeGroup.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46535 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Handle incomplete struct initializer.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46534 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Rewriting of @synchronized. This has one FIXME in it. But this should allow ↵Fariborz Jahanian
@sychronized to be rewritten. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46533 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Added boilerplate logic in GREngine for processing branches.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46532 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Renamed GRNodeBuilder to GRStmtNodeBuilder.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46531 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Minor fix in transfer function of '!=' where a 'false' literal shouldTed Kremenek
have been 'true'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46530 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29- Hooked up deserialization of ObjCAtSynchronizedStmt Stmt::Create().Ted Kremenek
- Some minor optimizations of the encoding format for ObjCAtSynchronizedStmt. - Reordered methods so that the deserialization methods for ObjCAtSynchronizedStmt appear in alphabetical order with the corresponding methods of the other AST nodes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46529 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Added preliminary transfer function support for '==' and '!='.Ted Kremenek
Made some internal API cleanups with creating ConcreteInt values, which lead to some code reduction in implementing "++", "--". git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46528 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29AST for @synchronized.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46524 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Tighten up ASTContext::typesAreCompatible()...it needs to make sure the ↵Steve Naroff
qualifiers match. The comment and C99 citation for this routine were correct...the code needed to conform to the comment/spec. This fixes the test added below. Tightening up this routine forced tweaks to Sema::CheckSubtractionOperands() and Sema::CheckCompareOperands(). For example, they both need to operate on the unqualified pointee... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46522 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Bunch of type defs, etc. for @synchronized.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46520 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Fix a bug where CodeGen would attempt to erase an instruction that was Eli Friedman
already used. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46519 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Added "SymbolManager", which manages the set of symbolic values usedTed Kremenek
for analyzing a function. The initial state for GRConstants now assigns symbolic values to parameters. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46517 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Implement __builtin_offsetof.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46515 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29fix comment typoChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46505 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29add diagnosticChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46504 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Fix a bug where we would incorrectly emit a "cannot paste" error Chris Lattner
message when handling the GNU ", ## __VA_ARGS__" extension. While I'm at it, flag uses of this as extensions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46503 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Use the canonical type when comparing array types so the comparison Eli Friedman
doesn't get confused by typedefs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46502 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Improvements to ccc. Patch by Shantonu Sen.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46501 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Fixed bug where not all dead subexpressions were being pruned from the analysisTed Kremenek
state. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46491 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Modified LiveVariables to perform all of its base initialization in the ctor,Ted Kremenek
and now we require a FunctionDecl* object so that we can also keep track of all of the ParmDecls. Modified clients of LiveVariables to conform to the new interface. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46490 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Tweak Sema::DefaultArgumentPromotion() to call UsualUnaryConversions(). This ↵Steve Naroff
makes sure function calls that don't have a prototype get the default function/array conversion. Patch by Eli Friedman! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46489 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Handle binary or in constant expressions.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46482 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Correctly handle constants that refer to enums.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46481 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Correctly handle scalars in braces.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46480 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Added skeleton code for tracking the values of function parameters.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46477 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Driver now passes the top-level FunctionDecl* to GRConstants.Ted Kremenek
Refactoring: for GREngine and GRConstants, pushed references to CFG, ASTContext, and the top-level FunctionDecl into ExplodedGraphImpl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46475 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29Fix bz1950. ASTContext::functionTypesAreCompatible() needs to operate on the ↵Steve Naroff
unqualified parameter types (per C99 6.7.5.3p15). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46472 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-28Added RValue class "UninitializedValue".Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46471 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-28Added transfer function logic for "%=" operator.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46470 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-28Added transfer function hookups for "modulo" operator.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46468 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-28Minor tweaking with hierarchy of NonLValue objects: SymbolValue isTed Kremenek
now SymbolicNonLValue. Cleaned up some casts. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46467 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-28Some additional cleanups with method names.Ted Kremenek
Renamed ExprValue to RValue, as all expression values are RValues, and this keeps with the C terminology (renamed old "RValue" class to "NonLValue"). Introduced "ConcreteInt", a class that represents a concrete, integer constant as an RValue. Temporarily removed classes to represent set of possible constants and set of != constants. Will replace with a more general class representing a set of constraints. Added some foundational code to track "symbolic" values, which are used to accrue constraints on an abstract value that is shared between multiple variables. e.g: x = y; // at this point "x" and "y" share the same "value" if (x > 1) ... // at this point, the value shared by "x" and "y" is "> 1". git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46466 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-28Implement "private extern" on function decls!Steve Naroff
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46464 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-28Add -Wno-rewrite-macros to silence the following warning when using ↵Steve Naroff
-rewrite-test: xx.m:10:3: warning: rewriting sub-expression within a macro (may not be correct) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46462 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-28Fix a bug with struct initializers (in Sema::CheckInitializerListTypes()). Steve Naroff
Test case included from bz1948 (thanks Neil!). Also fixed an 80 column violation... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46430 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-27Make -o work with -E, patch contributed by Shantonu Sen!Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46426 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-26Tweaks to EmitLValue in CGExprConstant. Patch by Eli Friedman.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46389 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-26Add CodeGen for AddrOf in constant initializers. Original patch by Eli Friedman.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46388 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-26Factor out the constant generation into its own file.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46386 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-26Added back logic in patch r46361 ↵Ted Kremenek
(http://llvm.org/viewvc/llvm-project?rev=46361&view=rev) with the addition of some previously missing NULL pointer checks. Modified the UninitializedValues analysis to not expect that every Expr* at the block-level is a block-level expression (we probably need to change the name of such expressions to something truer to their meaning). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46380 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-25Implemented transfer function for '/='.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46379 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-25Further refactoring of transfer functions by having APSIntSetOp takeTed Kremenek
a template-template parameter. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46378 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-25Reverting r46361 (http://llvm.org/viewvc/llvm-project?rev=46361&view=rev) untilTed Kremenek
I diagnose the source of the failures it causes in the test suite. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46376 91177308-0d34-0410-b5e6-96231b3b80d8