aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2008-02-22Bug fix: For transfer function for unary "!", compare the subexpression valueTed Kremenek
against '0' of the same bit-width. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47465 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-22Bug fix in liveness: Only compute liveness information for VarDecls.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47464 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-21Return "Unknown" when using the value of a function pointer whose valueTed Kremenek
is symbolic. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47463 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-21Regression fix: Handle binary operators where both the left and rightTed Kremenek
operands are symbolic lvalues. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47459 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-21Added transfer function support for dispatching to functions we don't knowTed Kremenek
about. The default logic is to invalidate the values of all values passed-by-reference. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47456 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-21add a test caseNate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47455 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-21Handle __attribute__((annotate("string")))Nate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47451 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-21RemoveDeadBindings should now check for UninitalizedVal, as it is a nowTed Kremenek
an error to cast it to LVal. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47450 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-21Regression fix: Handle pointer arithmetic in unary ++/--.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47449 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-21Removed bogus assertions regard LValues binding to UnknownVal; they canTed Kremenek
do so implicitly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47447 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-21Remove incorrect casts from UnknownVal to NonLVal.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47446 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-21FIX: Promote the correct operand.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47445 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-21Simplified and generalized transfer function logic for casts, allowingTed Kremenek
the transfer function to be invoked without an Expr* for the Cast operation. Added implicit promotions to the transfer function logic for compound assignments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47444 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-21Added transfer function support for sizeof(void)Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47443 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-21Some const initializer tests for stuff I just committed.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47442 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-21Major cleanup of path-sensitive analysis engine and the current analysisTed Kremenek
based on constant. prop. and limited symbolics. - Renamed class: RValue -> RVal, LValue -> LVal, etc. - Minor method renamings and interface cleanups. - Tightened the RVal "type system" so that UninitializedVal and UnknownVal cannot be cast to LVal or NonLVal. This forces these corner cases values to be explicitly handled early before being dispatched to plug-in transfer function logic. - Major cleanup in the transfer function logic for binary and unary operators. Still fixing some regressions, but we now explicitly handle Uninitialized and Unknown values in a more rigorous way. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47441 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-21Clean up constant implicit cast emission; fixes a few edge cases Eli Friedman
invlolving implicit casts that cause both a decay to pointer type and a type conversion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47440 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-21Fix brace-enclosed string initializers for char arrays. From pr2079, Eli Friedman
ahtough I had the fix in my tree previously. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47439 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-21Change variable name to Tq (from TQ)Gabor Greif
because silly gcc 3.4.6 barfs on this construct. Type.h defines an "enum TQ", which makes the parser to err. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47438 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-21Added classes SolarisTargetInfo andGabor Greif
SolarisSparcV8TargetInfo to be able to handle "sparc-" triple prefixes. Please be aware that this is a minimal kludge, that pretty much duplicates the features of DarwinPowerPCTargetInfo, and also incorrectly uses stuff from the PPC namespace. But in result "make test" now passes a lot of tests, the notable exceptions being the objc rewrite tests and mandel.c. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47436 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-21implement codegen support for sizeof(void), fixing PR2080.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47429 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-21add some semantic checks for address spaces.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47423 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-21add a fixme.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47421 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-21Collect and build and process type attributes on pointers. For Chris Lattner
example, we can now correctly build the type for things like: _AS1 float * _AS2 *B; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47420 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-21move some code, no other change.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47419 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-21move type attribute processing into the creatively named ↵Chris Lattner
ProcessTypeAttributes method. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47418 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-21Correctly handle address space qualifiers in declspecs. This Chris Lattner
allows us to correctly handle stuff like: _AS1 float *B; and to reject stuff like: _AS1 _AS2* x; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47417 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-20move ConvertDeclSpecToType into SemaChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47415 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-20rename some methods.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47414 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-20Use getKind() in HandleDeclAttribute instead of decoding the string inline.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47413 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-20add a method to AttributeList that converts an identifier to an enum.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47412 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-20Tabs are the enemyNate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47410 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-20add some code that will be used to remove processed attrs fromChris Lattner
declspec, it is currently nonfunctional though. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47405 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-20Change ConvertDeclSpecToType to break out of switch instead of Chris Lattner
returning directly. This allows us to factor handling of _Complex. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47404 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-20Alternate address spaces work:Chris Lattner
rename QualType::getQualifiers to getCVRQualifiers. Add some fixme's and clean up some code relevant to qualifiers. Change ASQualType to contain a Type* instead of a QualType. Any CVR qualifiers should be on the outer qual type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47398 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-20Implemented transfer function logic for unary '+'Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47357 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-20Placed transfer function logic for dereferences in its own method, while atTed Kremenek
the same time clearing up some logic of how the unary '*' operator is processed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47356 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-19Improve non-const initializer implementation. Lauro Ramos Venancio
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47347 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-19Implement CodeGenModule::getMemSetFn method.Lauro Ramos Venancio
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47346 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-19Added missing case in constant propagation logic for handling the Xor ofTed Kremenek
two concrete integer values. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47341 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-19Added special handling for UninitializedVals for the transfer function logicTed Kremenek
for pointer dereferences. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47340 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-19Implemented "getType()" for symbolic values representing the "contents" ofTed Kremenek
another symbolic value. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47339 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-19Simplify aggregate initilizer implementation. Use the ↵Lauro Ramos Venancio
CodeGenModule::EmitConstantExpr method when possible. Fix mediabench/mpeg2/mpeg2dec test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47336 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-19Fixed transfer function for casts to always evaluate the effects of theTed Kremenek
cast's subexpression even if the cast itself has no effect. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47335 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-19Added transfer function support for casting to "void".Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47333 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-19fix the second half of PR2041: __restrict is ok in c90 mode, even ifChris Lattner
restrict isn't. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47316 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-19Fixed bug classof() bug with RValues that could cause an UninitializedValTed Kremenek
or UnknownVal to be interpreted as an actual NonLValue/LValue. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47304 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-19For now, --grsimple skips analyzing functions in header files.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47303 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-19Added back explicit state/node creation when visiting IntegerLiterals andTed Kremenek
CharacterLiterals. This may not be a permanent solution; it doesn't cost that much, however, to create a few additional states, and solves a whole bunch of edge cases when handling ?, ||, and &&. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47299 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-19Added boilerplate transfer function support for CallExprs.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47298 91177308-0d34-0410-b5e6-96231b3b80d8