| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 89938
|
|
|
|
| |
llvm-svn: 89935
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
instead of checking explicitly for an EnumConstantDecl. This folds references
to constant integer VarDecls, which has two benefits:
1. Slightly smaller emitted code from emitting a constant instead of a load,
and skipping emitting some constant globals.
2. Some code forgets to define static constant member variables; emitting a
load instead of the value in that case leads to a link error. (Such programs
are technically not well-formed, but in practice build with g++.)
llvm-svn: 89934
|
|
|
|
|
|
| |
for a covariant thunk.
llvm-svn: 89933
|
|
|
|
|
|
| |
internal linkage. Fixes PR5433.
llvm-svn: 89931
|
|
|
|
|
|
| |
ThunkAdjustment.
llvm-svn: 89930
|
|
|
|
|
|
| |
adjustment offset. Start using it. General cleanup in Mangle.cpp.
llvm-svn: 89925
|
|
|
|
| |
llvm-svn: 89867
|
|
|
|
|
|
| |
yet).
llvm-svn: 89835
|
|
|
|
|
|
|
|
|
|
| |
statements, e.g.,
for(; X x = X(); ) { ... }
Daniel or Anders, please review!
llvm-svn: 89832
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
constructor has default arguments.
llvm-svn: 89783
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
| |
CGTemporaries.
llvm-svn: 89742
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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: 89705
|
|
|
|
| |
llvm-svn: 89692
|
|
|
|
| |
llvm-svn: 89678
|
|
|
|
|
|
| |
DeclRefExprs
llvm-svn: 89649
|
|
|
|
| |
llvm-svn: 89633
|
|
|
|
|
|
|
| |
- Ideally we would have an single iteration interface for this, but this works
for now.
llvm-svn: 89632
|
|
|
|
| |
llvm-svn: 89613
|
|
|
|
| |
llvm-svn: 89569
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
type and fixes a long-standing code gen. crash reported in
at least two PRs and a radar. (radar 7405040 and pr5025).
There are couple of remaining issues that I would like for
Ted. and Doug to look at:
Ted, please look at failure in Analysis/MissingDealloc.m.
I have temporarily added an expected-warning to make the
test pass. This tests has a declaration of 'SEL' type which
may not co-exist with the new changes.
Doug, please look at a FIXME in PCHWriter.cpp/PCHReader.cpp.
I think the changes which I have ifdef'ed out are correct. They
need be considered for in a few Indexer/PCH test cases.
llvm-svn: 89561
|
|
|
|
|
|
| |
- Several important FIXMEs related to whether arguments are expressions or external names, and the mangling of extern "C" names (c.f., PR5522).
llvm-svn: 89556
|
|
|
|
|
|
|
|
| |
- Sometimes we have to mangle things we wouldn't normally (e.g., because they appear in a template expression).
- This also tidies up the predicate to be more obvious what is getting mangled.
llvm-svn: 89555
|
|
|
|
|
|
| |
called on var or function decls.
llvm-svn: 89554
|
|
|
|
|
|
| |
don't love typing for typings sake, but...
llvm-svn: 89553
|
|
|
|
| |
llvm-svn: 89551
|
|
|
|
| |
llvm-svn: 89550
|
|
|
|
| |
llvm-svn: 89549
|
|
|
|
|
|
|
| |
instead of requiring clients to make a raw_svector_ostream, which is just an
implementation detail.
llvm-svn: 89548
|
|
|
|
| |
llvm-svn: 89547
|
|
|
|
| |
llvm-svn: 89545
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The following attributes are currently supported in C++0x attribute
lists (and in GNU ones as well):
- align() - semantics believed to be conformant to n3000, except for
redeclarations and what entities it may apply to
- final - semantics believed to be conformant to CWG issue 817's proposed
wording, except for redeclarations
- noreturn - semantics believed to be conformant to n3000, except for
redeclarations
- carries_dependency - currently ignored (this is an optimization hint)
llvm-svn: 89543
|
|
|
|
| |
llvm-svn: 89513
|
|
|
|
| |
llvm-svn: 89467
|
|
|
|
| |
llvm-svn: 89457
|
|
|
|
| |
llvm-svn: 89450
|
|
|
|
|
|
| |
construction. WIP.
llvm-svn: 89442
|
|
|
|
|
|
| |
constructor. WIP.
llvm-svn: 89438
|
|
|
|
| |
llvm-svn: 89424
|