| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 69413
|
| |
|
|
|
|
|
|
|
| |
Highlights: PP::isNextPPTokenLParen() no longer eats the (
when present. We now simplify slightly the logic parsing
macro arguments. We now handle PR3937 and other related cases
correctly.
llvm-svn: 69411
|
| |
|
|
| |
llvm-svn: 69410
|
| |
|
|
|
|
|
|
|
|
| |
"Hello, World!", this takes us from deserializing 6469
statements/expressions down to deserializing 1
statement/expression. It only translated into a 1% improvement on the
Carbon-prefixed 403.gcc, but (a) it's the right thing to do, and (b)
we expect this to matter more once we lazily deserialize identifiers.
llvm-svn: 69407
|
| |
|
|
|
|
|
|
| |
lazy PCH deserialization. Propagate that argument wherever it needs to
be. No functionality change, except that I've tightened up a few PCH
tests in preparation.
llvm-svn: 69406
|
| |
|
|
|
|
| |
on the code.
llvm-svn: 69404
|
| |
|
|
| |
llvm-svn: 69403
|
| |
|
|
| |
llvm-svn: 69401
|
| |
|
|
|
|
|
| |
from a PCH file. It turns out that "Hello, World!" is bringing in 19%
of all of the statements in Carbon.h, so we need to be lazy.
llvm-svn: 69393
|
| |
|
|
|
|
| |
rdar://6800430
llvm-svn: 69392
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. We had logic in sema to decide whether or not to emit the error
based on manually checking whether in a system header file.
2. we were allowing redefinitions of typedefs in class scope in C++
if in header file.
3. there was no way to force typedef redefinitions to be accepted
by the C compiler, which annoys me when stripping linemarkers out
of .i files.
The fix is to split the C++ class typedef redefinition path from the
C path, and change the C path to be a warning that normally maps to
error. This causes it to properly be ignored in system headers,
etc. and gives us a way to control it. Passing
-Wtypedef-redefinition now turns the error into a warning.
One behavior change is that we now diagnose cases where you redefine
a typedef in your .c file that was defined in a header file. This
seems like reasonable behavior, and the diagnostic now indicates that
it can be controlled with -Wtypedef-redefinition.
llvm-svn: 69391
|
| |
|
|
|
|
|
|
|
| |
1) Accidentally used delete [] on an array of statements that was allocated with ASTContext's allocator
2) Deserialization of names with multiple declarations (e.g., a struct and a function) used the wrong mangling constant, causing it to view declaration IDs as Decl*s.
403.gcc builds and links properly.
llvm-svn: 69390
|
| |
|
|
| |
llvm-svn: 69389
|
| |
|
|
|
|
| |
no-dead-strip set on them).
llvm-svn: 69388
|
| |
|
|
| |
llvm-svn: 69387
|
| |
|
|
|
|
|
| |
This completes support for all of C (+ extensions). We can (again)
build a PCH file for Carbon.h.
llvm-svn: 69385
|
| |
|
|
| |
llvm-svn: 69379
|
| |
|
|
|
|
| |
a BlockDeclRefExpr
llvm-svn: 69376
|
| |
|
|
|
|
|
| |
a dummy *function* type when it is recovering and knows it needs
a function. rdar://6802350 - clang crash on invalid input
llvm-svn: 69374
|
| |
|
|
| |
llvm-svn: 69373
|
| |
|
|
| |
llvm-svn: 69370
|
| |
|
|
| |
llvm-svn: 69369
|
| |
|
|
| |
llvm-svn: 69364
|
| |
|
|
| |
llvm-svn: 69362
|
| |
|
|
|
|
|
| |
the functional change here is changing ConvertType -> ConvertTypeForMem
so that we handle i1 fields properly as memory.
llvm-svn: 69361
|
| |
|
|
| |
llvm-svn: 69360
|
| |
|
|
| |
llvm-svn: 69356
|
| |
|
|
|
|
|
| |
Optimize PCH encoding for switch-case statements slightly, by making
the switch-case numbering local to a particular statement.
llvm-svn: 69355
|
| |
|
|
|
|
| |
Add a few commented lines to the test case that point out things that don't work yet.
llvm-svn: 69354
|
| |
|
|
|
|
| |
yet.
llvm-svn: 69346
|
| |
|
|
| |
llvm-svn: 69345
|
| |
|
|
|
|
| |
by anything yet.
llvm-svn: 69343
|
| |
|
|
|
|
|
| |
- <rdar://problem/6800351> clang not producing correct large struct
return code for Blocks
llvm-svn: 69337
|
| |
|
|
| |
llvm-svn: 69334
|
| |
|
|
| |
llvm-svn: 69332
|
| |
|
|
|
|
|
| |
expressions that can be of static duration to be returned.
Radar 6786551
llvm-svn: 69331
|
| |
|
|
|
|
|
|
|
|
|
|
| |
struct S {
S(int, int);
};
void f() {
S s(10, 10);
}
llvm-svn: 69330
|
| |
|
|
|
|
| |
compound, case, default, if, switch, and break statements.
llvm-svn: 69329
|
| |
|
|
| |
llvm-svn: 69328
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
will now make an implicit CXXTemporaryObjectExpr. So
struct S {
S();
};
void f() {
S s;
}
's' here will implicitly be declared as.
S s = S();
llvm-svn: 69326
|
| |
|
|
|
|
| |
unsupported arch.
llvm-svn: 69322
|
| |
|
|
|
|
| |
same ueber-easy visitor scheme used for expressions/statements.
llvm-svn: 69320
|
| |
|
|
|
|
| |
functionality change.
llvm-svn: 69319
|
| |
|
|
| |
llvm-svn: 69315
|
| |
|
|
|
|
| |
declaring a static Block 'const'.
llvm-svn: 69306
|
| |
|
|
|
|
| |
match gcc's.
llvm-svn: 69305
|
| |
|
|
|
|
|
|
|
|
|
| |
conversion constructors.
Remove an atrocious amount of trailing whitespace in the overloaded operator mangler. Sorry, couldn't help myself.
Change the DeclType parameter of Sema::CheckReferenceInit to be passed by value instead of reference. It wasn't changed anywhere.
Let the parser handle C++'s irregular grammar around assignment-expression and conditional-expression.
And finally, the reason for all this stuff: implement C++ semantics for the conditional operator. The implementation is complete except for determining lvalueness.
llvm-svn: 69299
|
| |
|
|
|
|
| |
Douglas, can you check that this is doing the right thing?
llvm-svn: 69298
|
| |
|
|
|
|
| |
that it's a valid init. Instead, just set it as the VarDecl's initializer.
llvm-svn: 69292
|
| |
|
|
|
|
| |
when generating a common definition.
llvm-svn: 69287
|