| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 107593
|
|
|
|
|
|
|
|
| |
initializing so avoid
the invariant checks at NamespaceDecl::setAnonymousNamespace().
llvm-svn: 107566
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
declarations for implicit default constructors, copy constructors,
copy assignment operators, and destructors. On a "simple" translation
unit that includes a bunch of C++ standard library headers, we
generate relatively few of these implicit declarations now:
4/159 implicit default constructors created
18/236 implicit copy constructors created
70/241 implicit copy assignment operators created
0/173 implicit destructors created
And, on this translation unit, this optimization doesn't really
provide any benefit. I'll do some more performance measurements soon,
but this completes the implementation work for <rdar://problem/8151045>.
llvm-svn: 107551
|
|
|
|
| |
llvm-svn: 107543
|
|
|
|
| |
llvm-svn: 107542
|
|
|
|
| |
llvm-svn: 107521
|
|
|
|
| |
llvm-svn: 107510
|
|
|
|
|
|
| |
<vector> header can be used correctly through PCH now.
llvm-svn: 107483
|
|
|
|
| |
llvm-svn: 107477
|
|
|
|
|
|
|
|
| |
ClassTemplatePartialSpecializationDecls.
Store/read also their template arguments because they may be initializing and not be able to provide them.
llvm-svn: 107476
|
|
|
|
| |
llvm-svn: 107475
|
|
|
|
|
|
| |
complicated to delay PCH reading the type of a TypeDecl.
llvm-svn: 107469
|
|
|
|
|
|
| |
them for PCH reading.
llvm-svn: 107468
|
|
|
|
| |
llvm-svn: 107268
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit 'introduces' a slightly different way to restore the state of the AST object.
It makes PCHDeclReader/PCHDeclWriter friends and gives them access to the private members of the object.
The rationale is to avoid using/modifying the AST interfaces for PCH read/write so that to:
-Avoid complications with objects that have side-effects during creation or when using some setters.
-Not 'pollute' the AST interface with methods only used by the PCH reader/writer
-Allow AST objects to be read-only.
llvm-svn: 107219
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before this commit, sub-stmts were stored as encountered and when they were placed in the Stmts stack we had to know what index
each stmt operand has. This complicated supporting variable sub-stmts and sub-stmts that were contained in TypeSourceInfos, e.g.
x = sizeof(int[1]);
would crash PCH.
Now, sub-stmts are stored in reverse order, from last to first, so that when reading them, in order to get the next sub-stmt we just
need to pop the last stmt from the stack. This greatly simplified the way stmts are written and read (just use PCHWriter::AddStmt and
PCHReader::ReadStmt accordingly) and allowed variable stmt operands and TypeSourceInfo exprs.
llvm-svn: 107087
|
|
|
|
| |
llvm-svn: 106995
|
|
|
|
| |
llvm-svn: 106860
|
|
|
|
| |
llvm-svn: 106625
|
|
|
|
|
|
| |
declarations (implements radar 7928731).
llvm-svn: 106597
|
|
|
|
| |
llvm-svn: 106534
|
|
|
|
|
|
| |
FunctionTemplateDecl.
llvm-svn: 106412
|
|
|
|
| |
llvm-svn: 106404
|
|
|
|
|
|
| |
template reading from PCH.
llvm-svn: 106393
|
|
|
|
| |
llvm-svn: 106392
|
|
|
|
| |
llvm-svn: 106391
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, there are two effective changes:
- Attr::Kind has been changed to attr::Kind, in a separate namespace
rather than the Attr class. This is because the enumerator needs to
be visible to parse.
- The class definitions for the C++0x attributes other than aligned are
generated by TableGen.
The specific classes generated by TableGen are controlled by an array in
TableGen (see the accompanying commit to the LLVM repository). I will be
expanding the amount of code generated as I develop the new attributes system
while initially keeping it confined to these attributes.
llvm-svn: 106172
|
|
|
|
|
|
| |
the decl was read from a PCH file.
llvm-svn: 105852
|
|
|
|
| |
llvm-svn: 105525
|
|
|
|
| |
llvm-svn: 105484
|
|
|
|
|
|
|
| |
the case where we pick up block arguments from a typedef. Save the block
signature as it was written, and preserve same through PCH.
llvm-svn: 105466
|
|
|
|
|
|
|
|
| |
This is required in order to test:
The ASTImporter should set base classes after formally entering the definition.
llvm-svn: 105401
|
|
|
|
|
|
|
|
| |
The macros required for DeclNodes use have changed to match the use of
StmtNodes. The FooFirst enumerator constants have been named firstFoo
to match usage elsewhere.
llvm-svn: 105165
|
|
|
|
| |
llvm-svn: 104990
|
|
|
|
|
|
|
|
|
|
|
|
| |
the x86-64 __va_list_tag with this attribute. The attribute causes the
affected type to behave like a fundamental type when considered by ADL.
(x86-64 is the only target we currently provide with a struct-based
__builtin_va_list)
Fixes PR6762.
llvm-svn: 104941
|
|
|
|
| |
llvm-svn: 104800
|
|
|
|
| |
llvm-svn: 104795
|
|
|
|
| |
llvm-svn: 104135
|
|
|
|
| |
llvm-svn: 104026
|
|
|
|
|
|
|
|
|
|
|
|
| |
return value optimization. Sema marks return statements with their
NRVO candidates (which may or may not end up using the NRVO), then, at
the end of a function body, computes and marks those variables that
can be allocated into the return slot.
I've checked this locally with some debugging statements (not
committed), but there won't be any tests until CodeGen comes along.
llvm-svn: 103865
|
|
|
|
| |
llvm-svn: 103517
|
|
|
|
|
|
| |
Andrew Sutton!
llvm-svn: 103301
|
|
|
|
|
|
|
| |
an enum in the enum decl itself. Use some spare bits from TagDecl for this
purpose.
llvm-svn: 103173
|
|
|
|
|
|
|
| |
of properties which are of C++ objects. Code Gen to follow
(Radar 7468090).
llvm-svn: 103123
|
|
|
|
|
|
|
|
| |
(-Wunused-exception-parameter) than normal variables, since it's more
common to name and then ignore an exception parameter. This warning is
neither enabled by default nor by -Wall. Fixes <rdar://problem/7931045>.
llvm-svn: 102931
|
|
|
|
|
|
| |
ivar of c++ object types.
llvm-svn: 102500
|
|
|
|
|
|
|
| |
declaration" (i.e. the only which will actually be looked up) to have the
non-member-operator bit.
llvm-svn: 102231
|
|
|
|
|
|
| |
testsuite.
llvm-svn: 102224
|
|
|
|
|
|
| |
a simple IDNS mask by introducing a namespace for non-member operators.
llvm-svn: 102215
|
|
|
|
|
|
|
|
| |
function declaration, since it may end up being changed (e.g.,
"extern" can become "static" if a prior declaration was static). Patch
by Enea Zaffanella and Paolo Bolzoni.
llvm-svn: 101826
|