| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 95525
|
| |
|
|
| |
llvm-svn: 95502
|
| |
|
|
|
|
| |
all fully constructed members. Fixes ctor_dtor_count.cpp in the test suite.
llvm-svn: 95501
|
| |
|
|
| |
llvm-svn: 95476
|
| |
|
|
|
|
| |
taken for non-trivial constructors.
llvm-svn: 95457
|
| |
|
|
|
|
|
|
|
|
|
|
| |
follows (as conservatively as possible) gcc's current behavior: attributes
written on return types that don't apply there are applied to the function
instead, etc. Only parse CC attributes as type attributes, not as decl attributes;
don't accepet noreturn as a decl attribute on ValueDecls, either (it still
needs to apply to other decls, like blocks). Consistently consume CC/noreturn
information throughout codegen; enforce this by removing their default values
in CodeGenTypes::getFunctionInfo().
llvm-svn: 95436
|
| |
|
|
|
|
| |
for the reference binding bug that is preventing self-hosting.
llvm-svn: 95223
|
| |
|
|
|
|
| |
initializers. Fixes about ~2000 clang/LLVM tests in the clang-on-clang build.
llvm-svn: 95116
|
| |
|
|
| |
llvm-svn: 94965
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(necessarily simultaneous) changes:
- CXXBaseOrMemberInitializer now contains only a single initializer
rather than a set of initialiation arguments + a constructor. The
single initializer covers all aspects of initialization, including
constructor calls as necessary but also cleanup of temporaries
created by the initializer (which we never handled
before!).
- Rework + simplify code generation for CXXBaseOrMemberInitializers,
since we can now just emit the initializer as an initializer.
- Switched base and member initialization over to the new
initialization code (InitializationSequence), so that it
- Improved diagnostics for the new initialization code when
initializing bases and members, to match the diagnostics produced
by the previous (special-purpose) code.
- Simplify the representation of type-checked constructor initializers in
templates; instead of keeping the fully-type-checked AST, which is
rather hard to undo at template instantiation time, throw away the
type-checked AST and store the raw expressions in the AST. This
simplifies instantiation, but loses a little but of information in
the AST.
- When type-checking implicit base or member initializers within a
dependent context, don't add the generated initializers into the
AST, because they'll look like they were explicit.
- Record in CXXConstructExpr when the constructor call is to
initialize a base class, so that CodeGen does not have to infer it
from context. This ensures that we call the right kind of
constructor.
There are also a few "opportunity" fixes here that were needed to not
regress, for example:
- Diagnose default-initialization of a const-qualified class that
does not have a user-declared default constructor. We had this
diagnostic specifically for bases and members, but missed it for
variables. That's fixed now.
- When defining the implicit constructors, destructor, and
copy-assignment operator, set the CurContext to that constructor
when we're defining the body.
llvm-svn: 94952
|
| |
|
|
|
|
| |
offset, we don't need to null check the input pointer. Fixes PR5965.
llvm-svn: 94942
|
| |
|
|
|
|
| |
value if the class offset is 0.
llvm-svn: 94939
|
| |
|
|
| |
llvm-svn: 94938
|
| |
|
|
| |
llvm-svn: 94800
|
| |
|
|
|
|
| |
initializing fields (and reference type fields in particular).
llvm-svn: 94799
|
| |
|
|
|
|
| |
union or not from the FieldDecl (through its DeclContext).
llvm-svn: 94798
|
| |
|
|
| |
llvm-svn: 93546
|
| |
|
|
| |
llvm-svn: 92420
|
| |
|
|
|
|
| |
aren't yet used in the ctors/dtors, but that will follow.
llvm-svn: 92409
|
| |
|
|
| |
llvm-svn: 92399
|
| |
|
|
| |
llvm-svn: 92148
|
| |
|
|
| |
llvm-svn: 90401
|
| |
|
|
| |
llvm-svn: 90026
|
| |
|
|
|
|
| |
GetCXXBaseClassOffset to actually pass the test.
llvm-svn: 90025
|
|
|
CGTemporaries.
llvm-svn: 89742
|