| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
make sure that this variable is destroyed when we exit the switch
statement.
llvm-svn: 89776
|
|
|
|
|
|
| |
the member decl refers to an enum. Thanks to Eli for pointing this out!
llvm-svn: 89775
|
|
|
|
|
|
| |
dependent.
llvm-svn: 89774
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Outside the "if", to ensure that we destroy the condition variable
at the end of the "if" statement rather than at the end of the
block containing the "if" statement.
- Inside the "then" and "else" branches, so that we emit then- or
else-local cleanups at the end of the corresponding block when the
block is not a compound statement.
To make adding these new cleanup scopes easier (and since
switch/do/while will all need the same treatment), added the
CleanupScope RAII object to introduce a new cleanup scope and make
sure it gets cleaned up.
llvm-svn: 89773
|
|
|
|
| |
llvm-svn: 89769
|
|
|
|
| |
llvm-svn: 89767
|
|
|
|
| |
llvm-svn: 89766
|
|
|
|
| |
llvm-svn: 89751
|
|
|
|
| |
llvm-svn: 89750
|
|
|
|
|
|
| |
CallAndMessageChecker.
llvm-svn: 89745
|
|
|
|
|
|
| |
CGTemporaries.
llvm-svn: 89742
|
|
|
|
|
|
| |
member template.
llvm-svn: 89741
|
|
|
|
|
|
| |
definition so that the function will have the right linkage.
llvm-svn: 89740
|
|
|
|
|
|
|
|
| |
static member constants. No significant visible difference at the moment
because it conservatively assumes the base has side effects. I'm planning to
use this for CodeGen.
llvm-svn: 89738
|
|
|
|
| |
llvm-svn: 89737
|
|
|
|
|
|
|
|
| |
incomplete return types or incomplete argument types.
Handle this by returning the llvm::OpaqueType for those cases, which CodeGenModule::GetOrCreateLLVMFunction knows about, and treats as being an "incomplete function".
llvm-svn: 89736
|
|
|
|
| |
llvm-svn: 89735
|
|
|
|
| |
llvm-svn: 89734
|
|
|
|
|
|
| |
was dereferenced. Addresses <rdar://problem/7039161>.
llvm-svn: 89726
|
|
|
|
| |
llvm-svn: 89721
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 89716
|
|
|
|
|
|
| |
bounds check succeeded by transitioning the ExplodedGraph.
llvm-svn: 89712
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 89705
|
|
|
|
| |
llvm-svn: 89704
|
|
|
|
| |
llvm-svn: 89696
|
|
|
|
| |
llvm-svn: 89692
|
|
|
|
|
|
| |
type-casts in the parser.
llvm-svn: 89691
|
|
|
|
| |
llvm-svn: 89688
|
|
|
|
|
|
| |
with bugreporter::registerTrackNullOrUndefValue instead of the condition itself.
llvm-svn: 89682
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
cases for this check.
llvm-svn: 89679
|
|
|
|
| |
llvm-svn: 89678
|
|
|
|
|
|
| |
failed tests.
llvm-svn: 89677
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
*) the ../backward dir is the last in libstdc++ to be searched
*) If compiling c++, the c++ headers are searched first
llvm-svn: 89661
|
|
|
|
| |
llvm-svn: 89657
|
|
|
|
|
|
|
| |
functions for a switch condition's conversion to integral or
enumeration type.
llvm-svn: 89656
|
|
|
|
|
|
| |
integral or enumeration type (vi user-defined conversions). Fixes PR5518.
llvm-svn: 89655
|
|
|
|
|
|
|
| |
their template parameter depth and position, so that we can match
redeclarations appropriately. Fixes PR5527 and PR5528.
llvm-svn: 89654
|
|
|
|
|
|
|
| |
of the current instantiation and members of an unknown specialization
when type-checking a qualified-if expression.
llvm-svn: 89653
|
|
|
|
|
|
| |
PR5541
llvm-svn: 89652
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 89650
|
|
|
|
|
|
| |
DeclRefExprs
llvm-svn: 89649
|
|
|
|
| |
llvm-svn: 89643
|
|
|
|
|
|
| |
in the checker directly. But I don't have a better approach for now.
llvm-svn: 89640
|
|
|
|
|
|
|
|
|
|
| |
locations" into
a new class. Use it pervasively throughout Sema.
My fingers hurt.
llvm-svn: 89638
|
|
|
|
| |
llvm-svn: 89633
|