- Aug 24, 2010
-
-
Tom Care authored
- Added wasReferenced function to PseudoConstantAnalysis to determine if a variable was ever referenced in a function (outside of a self-assignment) - BlockDeclRefExpr referenced variables are now explicitly added to the non-constant list - Remove unnecessary ignore of implicit casts - Generalized parameter self-assign detection to detect deliberate self-assigns of variables to avoid unused variable warnings - Updated test cases with deliberate self-assignments - Fixed bug with C++ references and pseudoconstants - Added test case for C++ references and pseudoconstants llvm-svn: 111965
-
Zhongxing Xu authored
llvm-svn: 111897
-
- Aug 23, 2010
-
-
Tom Care authored
- Psuedo -> Pseudo (doh...) - C++ reference support - Added pseudoconstant test case for __block vars - Separated out static local checking from pseudoconstant analysis and generalized to non-local checking - Added missing test cases for storage false positives llvm-svn: 111832
-
Zhongxing Xu authored
llvm-svn: 111790
-
- Aug 22, 2010
-
-
Eli Friedman authored
llvm-svn: 111768
-
- Aug 21, 2010
-
-
Zhongxing Xu authored
llvm-svn: 111737
-
Zhongxing Xu authored
llvm-svn: 111736
-
Zhongxing Xu authored
llvm-svn: 111735
-
Zhongxing Xu authored
with the same binding key. The only trick here is that sometimes the Symbolic region is stored in with an LocAsInteger wrapper. We unwrap that in SVal::getAsLocSymbol(). llvm-svn: 111734
-
Zhongxing Xu authored
region and its base region as the same binding key. llvm-svn: 111732
-
Zhongxing Xu authored
llvm-svn: 111731
-
Zhongxing Xu authored
relavant any more, because we set its default value to a symbol, and the type of default symbolic value is irrelavant. llvm-svn: 111730
-
- Aug 20, 2010
-
-
Ted Kremenek authored
llvm-svn: 111616
-
Jordy Rose authored
llvm-svn: 111602
-
- Aug 19, 2010
-
-
Jordy Rose authored
llvm-svn: 111541
-
Sebastian Redl authored
llvm-svn: 111472
-
Alexis Hunt authored
Now all classes derived from Attr are generated from TableGen. Additionally, Attr* is no longer its own linked list; SmallVectors or Attr* are used. The accompanying LLVM commit contains the updates to TableGen necessary for this. Some other notes about newly-generated attribute classes: - The constructor arguments are a SourceLocation and a Context&, followed by the attributes arguments in the order that they were defined in Attr.td - Every argument in Attr.td has an appropriate accessor named getFoo, and there are sometimes a few extra ones (such as to get the length of a variadic argument). Additionally, specific_attr_iterator has been introduced, which will iterate over an AttrVec, but only over attributes of a certain type. It can be accessed through either Decl::specific_attr_begin/end or the global functions of the same name. llvm-svn: 111455
-
- Aug 18, 2010
-
-
Tom Care authored
Added psuedo-constant analysis and integrated it into the false positive reduction stage in IdempotentOperationChecker. - Renamed IdempotentOperationChecker::isConstant to isConstantOrPseudoConstant to better reflect the function - Changed IdempotentOperationChecker::PreVisitBinaryOperator to only run 'CanVary' once on undefined assumptions - Created new PsuedoConstantAnalysis class and added it to AnalysisContext - Changed IdempotentOperationChecker to exploit the new analysis - Updated tests with psuedo-constants - Added check to IdempotentOperationChecker to see if a Decl is const qualified llvm-svn: 111426
-
Jordy Rose authored
llvm-svn: 111353
-
Jordy Rose authored
llvm-svn: 111351
-
Chris Lattner authored
llvm-svn: 111347
-
Ted Kremenek authored
llvm-svn: 111327
-
Daniel Dunbar authored
llvm-svn: 111314
-
Ted Kremenek authored
llvm-svn: 111304
-
- Aug 17, 2010
-
-
Benjamin Kramer authored
and remove getStrData(). Patch by Peter Davies (with some tweaks). llvm-svn: 111229
-
Zhongxing Xu authored
llvm-svn: 111217
-
Jordy Rose authored
llvm-svn: 111205
-
- Aug 16, 2010
-
-
Tom Care authored
llvm-svn: 111190
-
Jordy Rose authored
Instead of using operator bool() for testing if a BindingKey is valid, use an explicit isValid() method. llvm-svn: 111181
-
Jordy Rose authored
llvm-svn: 111179
-
Jordy Rose authored
- Fix memcpy() and friends to actually invalidate the destination buffer. - Emit a different message for out-of-bounds buffer accesses if the buffer is being written to. - When conjuring symbols, let ValueManager figure out the type. llvm-svn: 111120
-
Jordy Rose authored
- Allow making ElementRegions with complex offsets (expressions or symbols) for the purpose of bounds-checking. - Rewrite GRState::AssumeInBound to actually do that checking, and to use the normal constraint path. - Remove ConstraintManager::AssumeInBound. - Teach RegionStore and FlatStore to ignore those regions for now. llvm-svn: 111116
-
Jordy Rose authored
llvm-svn: 111113
-
- Aug 15, 2010
-
-
Zhongxing Xu authored
llvm-svn: 111103
-
Zhongxing Xu authored
llvm-svn: 111099
-
Zhongxing Xu authored
iterate over symbols being tracked, instead of symbols being dead. llvm-svn: 111097
-
Argyrios Kyrtzidis authored
llvm-svn: 111091
-
- Aug 14, 2010
-
-
Jordy Rose authored
Update CStringChecker to take advantage of the new metadata symbols and region change callback. Now does basic tracking of string length for general regions. Currently this is still only used for modeling strlen(). llvm-svn: 111081
-
Jordy Rose authored
Add a callback for when region changes occur. Still somewhat of a work-in-progress, but working! Effect on clients: all changes to a store now go through GRState. llvm-svn: 111078
-
Jordy Rose authored
llvm-svn: 111077
-