- Nov 24, 2009
-
-
Ted Kremenek authored
Enhance null dereference diagnostics by indicating what variable (if any) was dereferenced. Addresses <rdar://problem/7039161>. llvm-svn: 89726
-
Daniel Dunbar authored
llvm-svn: 89721
-
Douglas Gregor authored
rather than burying it in a CXXConditionDeclExpr (that occassionally hides behind implicit conversions). Similar changes for switch, while, and do-while will follow, then the removal of CXXConditionDeclExpr. This commit is the canary. llvm-svn: 89717
-
Daniel Dunbar authored
llvm-svn: 89716
-
Ted Kremenek authored
After performing a bounds check in ArrayBoundChecker, record the fact that a bounds check succeeded by transitioning the ExplodedGraph. llvm-svn: 89712
-
- Nov 23, 2009
-
-
Ted Kremenek authored
along the way. Important changes: 1) To generate a sink node, use GenerateSink(); GenerateNode() is for generating regular transitions. This makes the API clearer and also allows us to use the 'bool' option to GenerateNode() for a different purpose. 2) GenerateNode() now automatically adds the generated node to the destination ExplodedNodeSet (autotransition) unless the client specifies otherwise with a bool flag. Several checkers did not call 'addTransition()' after calling 'GenerateNode()', causing the simulation path to be prematurely culled when a non-fail stop bug was encountered. 3) Add variants of GenerateNode()/GenerateSink() that take neither a Stmt* or a GRState*; most callers of GenerateNode() just pass in the same Stmt* as provided when the CheckerContext object is created; we can just use that the majority of the time. This cleanup also allows us to potentially coelesce the APIs for evaluating branches and end-of-paths (which currently directly use builders). 4) addTransition() no longer needs to be called except for a few cases. We now have a variant of addTransition() that takes a GRState*; this allows one to propagate the updated state without caring about generating a new node explicitly. This nicely cleaned up a bunch of cases that called autoTransition() with a bunch of conditional logic surround the call (that common logic has now been swallowed up by addTransition() itself). llvm-svn: 89707
-
Anders Carlsson authored
llvm-svn: 89705
-
Anders Carlsson authored
llvm-svn: 89704
-
Fariborz Jahanian authored
llvm-svn: 89696
-
Anders Carlsson authored
llvm-svn: 89692
-
Fariborz Jahanian authored
type-casts in the parser. llvm-svn: 89691
-
Ted Kremenek authored
llvm-svn: 89688
-
Ted Kremenek authored
Tweak UndefBranchChecker to register the most nested "undefined" expression with bugreporter::registerTrackNullOrUndefValue instead of the condition itself. llvm-svn: 89682
-
Fariborz Jahanian authored
objective-c pointer type. This was a serious mishap and luckily, Ted's test caught that (and patch fixes the test case). llvm-svn: 89680
-
Ted Kremenek authored
llvm-svn: 89679
-
Anders Carlsson authored
llvm-svn: 89678
-
John Thompson authored
llvm-svn: 89677
-
Sebastian Redl authored
Intercept sizeof and alignof references before they get into ASTContext methods. This fixes a crash when writing sizeof(Incomplete&), and lets ASTContext's methods do the right thing for CodeGen, which fixes PR5590. llvm-svn: 89668
-
Rafael Espindola authored
*) the ../backward dir is the last in libstdc++ to be searched *) If compiling c++, the c++ headers are searched first llvm-svn: 89661
-
Sebastian Redl authored
llvm-svn: 89657
-
Douglas Gregor authored
functions for a switch condition's conversion to integral or enumeration type. llvm-svn: 89656
-
Douglas Gregor authored
integral or enumeration type (vi user-defined conversions). Fixes PR5518. llvm-svn: 89655
-
Douglas Gregor authored
their template parameter depth and position, so that we can match redeclarations appropriately. Fixes PR5527 and PR5528. llvm-svn: 89654
-
Douglas Gregor authored
of the current instantiation and members of an unknown specialization when type-checking a qualified-if expression. llvm-svn: 89653
-
Douglas Gregor authored
llvm-svn: 89652
-
Douglas Gregor authored
complaint to a warning and providing a helpful node in the case where the "template<>" header is redundant because the corresponding template-id refers to an explicit specialization. C++0x might still change this behavior, and existing practice is all over the place on the number of "template<>" headers actually needed. llvm-svn: 89651
-
Douglas Gregor authored
llvm-svn: 89650
-
Douglas Gregor authored
llvm-svn: 89649
-
Zhongxing Xu authored
llvm-svn: 89643
-
Zhongxing Xu authored
in the checker directly. But I don't have a better approach for now. llvm-svn: 89640
-
John McCall authored
a new class. Use it pervasively throughout Sema. My fingers hurt. llvm-svn: 89638
-
Daniel Dunbar authored
llvm-svn: 89633
-
Daniel Dunbar authored
- Ideally we would have an single iteration interface for this, but this works for now. llvm-svn: 89632
-
- Nov 22, 2009
-
-
Daniel Dunbar authored
llvm-svn: 89630
-
Daniel Dunbar authored
llvm-svn: 89629
-
John McCall authored
llvm-svn: 89624
-
Ted Kremenek authored
Change CheckDeadStores to use Expr::isNullPointerConstant, which will correctly determine whether an expression is a null pointer constant. Patch by Kovarththanan Rajaratnam! llvm-svn: 89621
-
Anders Carlsson authored
llvm-svn: 89613
-
Anders Carlsson authored
When laying out bitfields, make sure that the data size is always aligned to a byte. This fixes PR5580. llvm-svn: 89611
-
Anders Carlsson authored
llvm-svn: 89604
-