- Jul 07, 2010
-
-
Jordy Rose authored
Add memcmp() and bcmp() to CStringChecker. These check for valid access to the buffer arguments and have a special-case for when the buffer arguments are known to be the same address, or when the size is zero. llvm-svn: 107761
-
Jordy Rose authored
Cleanup on CStringChecker and its associated tests. Also check for null arguments...which are allowed if the access length is 0! llvm-svn: 107759
-
John McCall authored
rethrow. Fixes rdar://problem/7696603 llvm-svn: 107757
-
Chris Lattner authored
people seem to write when they want a deterministic trap. Suggest instead that they use a volatile pointer or __builtin_trap. llvm-svn: 107756
-
John McCall authored
Fixes rdar://problem/8154689 llvm-svn: 107755
-
Tom Care authored
Change explicit handling of impossible condition to call llvm_unreachable in IdempotentOperationChecker::PreVisitBinaryOperator. llvm-svn: 107748
-
Chandler Carruth authored
making the other switch case unreachable, or sinking the 'continue' into it doesn't silence this. llvm-svn: 107745
-
Chandler Carruth authored
consider them for warnings. llvm-svn: 107741
-
John McCall authored
emit metadata associating allocas and global values with a Decl*. This feature is controlled by an option that (intentionally) cannot be enabled on the command line. To use this feature, simply set CodeGenOptions.EmitDeclMetadata = true; and then interpret the completely underspecified metadata. :) llvm-svn: 107739
-
Ted Kremenek authored
Fix casts in RegionStore to not always assume that bindings are only to SubRegions. Fixes assertion failure reported in PR 7572. llvm-svn: 107738
-
Ted Kremenek authored
llvm-svn: 107731
-
Jordy Rose authored
llvm-svn: 107728
-
Jordy Rose authored
Add a new path-sensitive checker for functions in <string.h>, for both null-terminated strings and memory blocks. Currently only checks memcpy(), memmove(), and bcopy(), but this is intended to be expanded soon. llvm-svn: 107722
-
Ted Kremenek authored
llvm-svn: 107709
-
- Jul 06, 2010
-
-
Tom Care authored
Added a path-sensitive idempotent operation checker (-analyzer-idempotent-operation). Finds idempotent and/or tautological operations in a path sensitive context, flagging operations that have no effect or a predictable effect. Example: { int a = 1; int b = 5; int c = b / a; // a is 1 on all paths } - New IdempotentOperationChecker class - Moved recursive Stmt functions in r107675 to IdempotentOperationChecker - Minor refactoring of SVal to allow checking for any integer - Added command line option for check - Added basic test cases llvm-svn: 107706
-
Nick Lewycky authored
AST during the instantiation. Fixes PR7417! llvm-svn: 107690
-
John McCall authored
into IRBuilder. llvm-svn: 107687
-
Douglas Gregor authored
TagDecl subclasses when out-of-line template declaration information is available, from Peter Collingbourne! llvm-svn: 107686
-
Douglas Gregor authored
template specialization, from Peter Collingbourne. llvm-svn: 107682
-
Douglas Gregor authored
declarations when implicitly declaring the default constructor, copy constructor, destructor, and copy-assignment operators of a class. Argiris fixed the underlying problem in r107596. llvm-svn: 107681
-
Duncan Sands authored
uninitialized (which doesn't seem to be the case), by giving them arbitrary initial values. llvm-svn: 107679
-
John McCall authored
block before deleting it. Fixes PR7575. This really just a short-term fix before implementing lazy cleanups. llvm-svn: 107676
-
Tom Care authored
Added several helper functions to Stmt to recursively check for different elements (macros, enum constants, etc). llvm-svn: 107675
-
Argyrios Kyrtzidis authored
llvm-svn: 107665
-
Argyrios Kyrtzidis authored
llvm-svn: 107664
-
Argyrios Kyrtzidis authored
llvm-svn: 107663
-
Argyrios Kyrtzidis authored
llvm-svn: 107662
-
Zhongxing Xu authored
llvm-svn: 107645
-
Zhongxing Xu authored
Add an API to get an Entity associated with a name in the global namespace. llvm-svn: 107642
-
John McCall authored
as nounwind in -fno-exceptions. Fixes rdar://problem/8090834. llvm-svn: 107639
-
Jordy Rose authored
Remove the now-unused GRState::isEqual method. Instead of asking if an expression equals a certain value, use SValuator::EvalEQ and GRState::Assume to see if it can, must, or must not equal that value. llvm-svn: 107638
-
Jordy Rose authored
Improve NULL-checking for CFRetain/CFRelease. We now remember that the argument was non-NULL, and we report where the null assumption came from (like AttrNonNullChecker already did). llvm-svn: 107633
-
John McCall authored
self-host. Hopefully these results hold up on different platforms. I tried to keep the GNU ObjC runtime happy, but it's hard for me to test. Reimplement how clang generates IR for exceptions. Instead of creating new invoke destinations which sequentially chain to the previous destination, push a more semantic representation of *why* we need the cleanup/catch/filter behavior, then collect that information into a single landing pad upon request. Also reorganizes how normal cleanups (i.e. cleanups triggered by non-exceptional control flow) are generated, since it's actually fairly closely tied in with the former. Remove the need to track which cleanup scope a block is associated with. Document a lot of previously poorly-understood (by me, at least) behavior. The new framework implements the Horrible Hack (tm), which requires every landing pad to have a catch-all so that inlining will work. Clang no longer requires the Horrible Hack just to make exceptions flow correctly within a function, however. The HH is an unfortunate requirement of LLVM's EH IR. llvm-svn: 107631
-
Zhongxing Xu authored
llvm-svn: 107630
-
- Jul 05, 2010
-
-
Chris Lattner authored
coerce cases (e.g. {double,int}) which avoids fastisel bailing out at -O0. llvm-svn: 107628
-
Chris Lattner authored
alloca for an argument. Make sure the argument gets the proper decl alignment, which may be different than the type alignment. This fixes PR7567 llvm-svn: 107627
-
Chris Lattner authored
llvm-svn: 107626
-
Chris Lattner authored
llvm-svn: 107624
-
Chris Lattner authored
wasn't handling array padding elements right. llvm-svn: 107621
-
Chris Lattner authored
Everyone knows that no bugs are ever possible with bitfields. llvm-svn: 107620
-