| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
btw, I believe that isMicrosoftInteger can go away; it's not read anywhere
llvm-svn: 90036
|
| |
|
|
| |
llvm-svn: 90030
|
| |
|
|
|
|
| |
DeclarationName can't handle them yet, so right now Parser just errors out on them.
llvm-svn: 90027
|
| |
|
|
|
|
| |
GetCXXBaseClassOffset to actually pass the test.
llvm-svn: 90025
|
| |
|
|
| |
llvm-svn: 89989
|
| |
|
|
|
|
| |
we check whether the vtable needs to be generated.
llvm-svn: 89984
|
| |
|
|
|
|
|
|
| |
operators, and destructors. Avoids generating declarations/definitions of
trivial constructors/destructors, and makes sure the trivial copy assignment
operator is generated when necessary.
llvm-svn: 89943
|
| |
|
|
|
|
| |
stack-allocated block. Implements the rest of <rdar://problem/7387385>.
llvm-svn: 89940
|
| |
|
|
|
|
| |
of blocks.
llvm-svn: 89939
|
| |
|
|
| |
llvm-svn: 89938
|
| |
|
|
| |
llvm-svn: 89932
|
| |
|
|
|
|
| |
internal linkage. Fixes PR5433.
llvm-svn: 89931
|
| |
|
|
|
|
|
|
| |
the set of variables "captured" by a block. Until the analysis gets
more sophisticated, for now we stop the retain count tracking of any
objects (transitively) referenced by these variables.
llvm-svn: 89929
|
| |
|
|
|
|
|
|
|
|
|
|
| |
maintains a stack of evaluation contexts rather than having the parser
do it. This change made it simpler to track in which contexts
temporaries were created, so that we could...
"Forget" about temporaries created within unevaluated contexts, so
that we don't build a CXXExprWithTemporaries and, therefore, destroy
the integral-constness of our expressions. Fixes PR5609.
llvm-svn: 89908
|
| |
|
|
|
|
| |
This fixes pr5611.
llvm-svn: 89895
|
| |
|
|
| |
llvm-svn: 89894
|
| |
|
|
|
|
|
|
|
|
|
| |
the linkage of a declaration. Switch the lame (and completely wrong)
NamedDecl::hasLinkage() over to using the new NamedDecl::getLinkage(),
along with the "can this declaration be a template argument?" check
that started all of this.
Fixes -fsyntax-only for PR5597.
llvm-svn: 89891
|
| |
|
|
| |
llvm-svn: 89876
|
| |
|
|
| |
llvm-svn: 89875
|
| |
|
|
| |
llvm-svn: 89874
|
| |
|
|
|
|
|
|
|
|
|
| |
function templates (in C++98), friend function templates, and
out-of-line definitions of members of class templates.
Also handles merging of default template arguments from previous
declarations of function templates, for C++0x. However, we don't yet
make use of those default template arguments.
llvm-svn: 89872
|
| |
|
|
|
|
|
| |
still parse the body of the switch to try to avoid spurious
diagnostics. Fixes PR5606.
llvm-svn: 89847
|
| |
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
we want to test
llvm-svn: 89818
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
checker when the code is targetted for either Tiger or Leopard.
llvm-svn: 89810
|
| |
|
|
|
|
| |
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
|
| |
|
|
| |
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: 89791
|
| |
|
|
|
|
| |
constructor has default arguments.
llvm-svn: 89783
|
| |
|
|
|
|
|
| |
Add support for variadic collection functions. More to do
here.
llvm-svn: 89781
|
| |
|
|
| |
llvm-svn: 89778
|
| |
|
|
|
|
| |
decls. This fixes PR5415.
llvm-svn: 89777
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
member template.
llvm-svn: 89741
|
| |
|
|
| |
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
|
| |
|
|
|
|
| |
was dereferenced. Addresses <rdar://problem/7039161>.
llvm-svn: 89726
|
| |
|
|
| |
llvm-svn: 89705
|