| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 95010
|
| |
|
|
| |
llvm-svn: 95009
|
| |
|
|
| |
llvm-svn: 95008
|
| |
|
|
| |
llvm-svn: 95005
|
| |
|
|
|
|
|
|
|
|
| |
by setting the section of the generated global. This is an
optimization done by the code generator, and the code being
removed didn't handle the case when the string contained an
embedded nul (which the code generator does correctly
handle). This is rdar://7589850
llvm-svn: 95003
|
| |
|
|
|
|
| |
definition. With that in mind, rename getDefinition to getAnyInitializer (to distinguish it from getInit) and reimplement it in terms of isThisDeclarationADefinition. Update all code to use this new function.
llvm-svn: 94999
|
| |
|
|
| |
llvm-svn: 94991
|
| |
|
|
|
|
|
| |
not quite sure what we want to do about the AST representation; comments
welcome.
llvm-svn: 94967
|
| |
|
|
| |
llvm-svn: 94965
|
| |
|
|
|
|
| |
references.
llvm-svn: 94964
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(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: 94920
|
| |
|
|
| |
llvm-svn: 94917
|
| |
|
|
| |
llvm-svn: 94849
|
| |
|
|
|
|
| |
global variable.
llvm-svn: 94817
|
| |
|
|
| |
llvm-svn: 94811
|
| |
|
|
| |
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
|
| |
|
|
|
|
|
| |
the ABI spec, this turns out to simplify the code. We still have some annoying
code which mismatches the spec with regard to empty structures.
llvm-svn: 94796
|
| |
|
|
| |
llvm-svn: 94791
|
| |
|
|
|
|
| |
confusion.
llvm-svn: 94760
|
| |
|
|
| |
llvm-svn: 94758
|
| |
|
|
| |
llvm-svn: 94756
|
| |
|
|
| |
llvm-svn: 94755
|
| |
|
|
| |
llvm-svn: 94754
|
| |
|
|
| |
llvm-svn: 94753
|
| |
|
|
| |
llvm-svn: 94751
|
| |
|
|
|
|
| |
class's vtable, if any.
llvm-svn: 94712
|
| |
|
|
| |
llvm-svn: 94710
|
| |
|
|
|
|
|
| |
now that the "InBytes" part of the name is implied by the return type, rename
it to getDeclAlign().
llvm-svn: 94681
|
| |
|
|
|
|
| |
runtime-specific code is a bit ugly. It would be a good idea to hoist all of the string / protocol uniqueing code up into CGObjCRuntime or CodeGenModule and only handle emitting the original versions in the runtime-specific code.
llvm-svn: 94676
|
| |
|
|
|
|
| |
be passed indirectly in the 32-bit ABI. Fixes PR6094.
llvm-svn: 94656
|
| |
|
|
|
|
| |
to the declaring class from the nearest virtual base class. WIP.
llvm-svn: 94606
|
| |
|
|
|
|
|
|
| |
to the declaring class from the nearest virtual base class. WIP.
This fixes 40% of all the problems remaining in one of my testcases.
llvm-svn: 94592
|
| |
|
|
| |
llvm-svn: 94579
|
| |
|
|
|
|
| |
that are in character units.
llvm-svn: 94577
|
| |
|
|
| |
llvm-svn: 94571
|
| |
|
|
| |
llvm-svn: 94564
|
| |
|
|
| |
llvm-svn: 94563
|
| |
|
|
| |
llvm-svn: 94555
|
| |
|
|
| |
llvm-svn: 94554
|
| |
|
|
|
|
| |
of LLVM types in character units.
llvm-svn: 94542
|
| |
|
|
|
|
| |
deferred (even if it's in an anonymous namespace).
llvm-svn: 94525
|
| |
|
|
| |
llvm-svn: 94520
|
| |
|
|
|
|
| |
destructor. Add debug info support for pure virtual member functions.
llvm-svn: 94519
|
| |
|
|
|
|
| |
function.
llvm-svn: 94513
|