| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 89854
|
| |
|
|
| |
llvm-svn: 89853
|
| |
|
|
| |
llvm-svn: 89849
|
| |
|
|
|
|
|
| |
still parse the body of the switch to try to avoid spurious
diagnostics. Fixes PR5606.
llvm-svn: 89847
|
| |
|
|
|
|
| |
instantiation. lib/Support/CommandLine.cpp is our test case
llvm-svn: 89845
|
| |
|
|
| |
llvm-svn: 89843
|
| |
|
|
| |
llvm-svn: 89842
|
| |
|
|
|
|
| |
The attributes are currently ignored.
llvm-svn: 89837
|
| |
|
|
|
|
| |
yet).
llvm-svn: 89835
|
| |
|
|
|
|
|
|
|
|
| |
statements, e.g.,
for(; X x = X(); ) { ... }
Daniel or Anders, please review!
llvm-svn: 89832
|
| |
|
|
|
|
| |
anytime we pass a tracked object to a block call we stop tracking it.
llvm-svn: 89831
|
| |
|
|
| |
llvm-svn: 89830
|
| |
|
|
| |
llvm-svn: 89829
|
| |
|
|
|
|
| |
precursor to having basic static analysis support for blocks.
llvm-svn: 89828
|
| |
|
|
|
|
| |
to build casted expression-list AST to Sema.
llvm-svn: 89827
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
All statements that involve conditions can now hold on to a separate
condition declaration (a VarDecl), and will use a DeclRefExpr
referring to that VarDecl for the condition expression. ForStmts now
have such a VarDecl (I'd missed those in previous commits).
Also, since this change reworks the Action interface for
if/while/switch/for, use FullExprArg for the full expressions in those
expressions, to ensure that we're emitting
Note that we are (still) not generating the right cleanups for
condition variables in for statements. That will be a follow-on
commit.
llvm-svn: 89817
|
| |
|
|
|
|
| |
definition. This allows sema to not emit spurious diagnostics in some invalid code.
llvm-svn: 89816
|
| |
|
|
|
|
| |
got introduced in Mac OS X 10.5 and later, notably return values of double, float, etc., will not be garbage. Fixes <rdar://problem/6829160>.
llvm-svn: 89809
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
initial transition of the nil-receiver checker to the Checker
interface as done in r89745. Some important changes include:
1) We consolidate the BugType object used for nil receiver bug
reports, and don't include the type of the returned value in the
BugType (which would be wrong if a nil receiver bug was reported more
than once)
2) Added a new (temporary) flag to CheckerContext: DoneEvauating.
This is used by GRExprEngine when evaluating message expressions to
not continue evaluating the message expression if this flag is set.
This flag is currently set by the nil receiver checker. This is an
intermediate solution to allow the nil-receiver checker to properly
work as a plug-in outside of GRExprEngine. Basically, this flag
indicates that the entire message expression has been evaluated, not
just a precondition (which is what the nil-receiver checker does).
This flag *should not* be repurposed for general use, but just to pull
more things out of GRExprEngine that already in there as we devise a
better interface in the Checker class.
3) Cleaned up the logic in the nil-receiver checker, making the
control-flow a lot easier to read.
llvm-svn: 89804
|
| |
|
|
|
|
| |
the common routine.
llvm-svn: 89802
|
| |
|
|
| |
llvm-svn: 89801
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
cleanups for while loops:
1) Make sure that we destroy the condition variable of a while statement each time through the loop for, e.g.,
while (shared_ptr<WorkInt> p = getWorkItem()) {
// ...
}
2) Make sure that we always enter a new cleanup scope for the body of the while loop, even when there is no compound expression, e.g.,
while (blah)
RAIIObject raii(blah+1);
llvm-svn: 89800
|
| |
|
|
|
|
|
|
|
|
|
| |
With this change, the clang-on-clang test result is now
Expected Passes : 224
Unexpected Failures: 37
Which means that we can compile over 80% of clang with clang! :)
llvm-svn: 89799
|
| |
|
|
|
|
| |
member-reference contexts. Fixes some clang-on-clang asserts.
llvm-svn: 89796
|
| |
|
|
| |
llvm-svn: 89789
|
| |
|
|
|
|
|
|
|
|
|
|
| |
DependentScopeDeclRefExpr support storing templateids. Unite the common
code paths between ActOnDeclarationNameExpr and ActOnTemplateIdExpr.
This gets us to a point where we don't need to store function templates in
the AST using TemplateNames, which is critical to ripping out OverloadedFunction.
Also resolves a few FIXMEs.
llvm-svn: 89785
|
| |
|
|
|
|
| |
constructor has default arguments.
llvm-svn: 89783
|
| |
|
|
| |
llvm-svn: 89782
|
| |
|
|
|
|
|
| |
Add support for variadic collection functions. More to do
here.
llvm-svn: 89781
|
| |
|
|
| |
llvm-svn: 89778
|
| |
|
|
|
|
|
| |
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
|