| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
for derived-to-base casts.
llvm-svn: 102270
|
| |
|
|
|
|
|
| |
permitted in C++ but not in C. Fixes PR6900. Clang can now handle all
of Boost.Lambda's regression tests.
llvm-svn: 102170
|
| |
|
|
|
|
|
|
|
| |
in a throw expression. Use EmitAnyExprToMem to emit the throw expression,
which magically elides the final copy-constructor call (which raises a new
strict-compliance bug, but baby steps). Give __cxa_throw a destructor pointer
if the exception type has a non-trivial destructor.
llvm-svn: 102039
|
| |
|
|
|
|
|
| |
because EmitBranch actually clears the insert point. This version
actually accomplishes what I initially wanted.
llvm-svn: 101998
|
| |
|
|
|
|
|
| |
just to save the current insertion state! This change significantly
simplifies the IR CFG in exceptions code.
llvm-svn: 101996
|
| |
|
|
| |
llvm-svn: 101921
|
| |
|
|
|
|
| |
we initialize the vtable pointer for a virtual base, and there was another path from the most derived class to another base with the same class type, we would use the wrong base.
llvm-svn: 101911
|
| |
|
|
|
|
| |
functionality change right now.
llvm-svn: 101872
|
| |
|
|
|
|
|
| |
property (atomic/nonatomic) is of aggregate type with
gc'able member objects) (NeXT runtime).
llvm-svn: 101156
|
| |
|
|
|
|
|
| |
atomicity of aggregate properties in setter/getter
methods. wip.
llvm-svn: 101107
|
| |
|
|
| |
llvm-svn: 100007
|
| |
|
|
| |
llvm-svn: 99866
|
| |
|
|
|
|
| |
temporaries code.
llvm-svn: 99865
|
| |
|
|
|
|
| |
pointer for all bases, even those without a vtable pointer :)
llvm-svn: 99777
|
| |
|
|
| |
llvm-svn: 99776
|
| |
|
|
|
|
| |
vtable pointer for non-virtual primary bases. We also do a pre-order traversal of the class hierarchy; this is necessary in order to get the right vbase offset offsets in base ctors/dtors.
llvm-svn: 99775
|
| |
|
|
| |
llvm-svn: 99773
|
| |
|
|
|
|
| |
construction vtables.
llvm-svn: 99609
|
| |
|
|
|
|
| |
(finally).
llvm-svn: 99381
|
| |
|
|
| |
llvm-svn: 99374
|
| |
|
|
| |
llvm-svn: 99365
|
| |
|
|
|
|
| |
VTableInfo class.
llvm-svn: 99250
|
| |
|
|
|
|
|
|
| |
- So much typing, so little gain...
Also, rename the __cxx_global_initialization function just to match llvm-gcc.
llvm-svn: 99039
|
| |
|
|
| |
llvm-svn: 99038
|
| |
|
|
| |
llvm-svn: 97656
|
| |
|
|
|
|
|
| |
__builtin_frob_return_address. The implementations for both are
still trivial in the default case.
llvm-svn: 97638
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
of the block descriptor field. This field is the ObjC style @encode
signature of the implementation function, and was to this point
conditionally provided in the block literal data structure. That
provisional support is removed.
Additionally, eliminate unused enumerations for the block literal flags field.
The first shipping ABI unconditionally set (1<<29) but this bit is unused
by the runtime, so the second ABI will unconditionally have (1<<30) set so
that the runtime can in fact distinguish whether the additional data is
present or not.
llvm-svn: 96989
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1) emit base destructors as aliases to their unique base class destructors
under some careful conditions. This is enabled for the same targets that can
support complete-to-base aliases, i.e. not darwin.
2) Emit non-variadic complete constructors for classes with no virtual bases
as calls to the base constructor. This is enabled on all targets and in
theory can trigger in situations that the alias optimization can't (mostly
involving virtual bases, mostly not yet supported).
These are bundled together because I didn't think it worthwhile to split them,
not because they really need to be.
llvm-svn: 96842
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Fix some bugs with function-try-blocks and simplify normal try-block
code generation.
This implementation excludes a deleting destructor's call to
operator delete() from the function-try-block, which I believe
is correct but which I can't find straightforward support for at
a moment's glance.
llvm-svn: 96670
|
| |
|
|
|
|
| |
change.
llvm-svn: 96564
|
| |
|
|
|
|
|
|
| |
repeatedly reloading from an alloca. We still need to create the alloca
for debug info purposes (although we currently create it in all cases
because of some abstraction boundaries that're hard to break down).
llvm-svn: 96403
|
| |
|
|
|
|
| |
converted "not-for-memory". Dunno a better name.
llvm-svn: 96374
|
| |
|
|
|
|
|
|
|
|
|
|
| |
the offset to the virtual bases statically inside of relying on the virtual
base offsets in the object's vtable(s). This is both more efficient and
sound against the destructor's manipulation of the vtables.
Also extract a few helper routines.
Oh and we seem to pass all tests with an optimized clang now.
llvm-svn: 96327
|
| |
|
|
|
|
|
|
|
|
| |
particular type, and flood fill. - CreateMemTemp sets the alignment on the alloca correctly, which fixes a great many places in IRgen where we were doing the wrong thing.
- This fixes many many more places than the test case, but my feeling is we need to audit alignment systematically so I'm not inclined to try hard to test the individual fixes in this patch. If this bothers you, patches welcome!
PR6240.
llvm-svn: 95648
|
| |
|
|
| |
llvm-svn: 95512
|
| |
|
|
| |
llvm-svn: 95416
|
| |
|
|
|
|
| |
BeginConditionalBranch/EndConditionalBranch.
llvm-svn: 95308
|
| |
|
|
|
|
| |
for the reference binding bug that is preventing self-hosting.
llvm-svn: 95223
|
| |
|
|
|
|
| |
CGExprConstant. Fixes PR5674.
llvm-svn: 95063
|
| |
|
|
|
|
| |
references.
llvm-svn: 94964
|
| |
|
|
| |
llvm-svn: 94938
|
| |
|
|
|
|
| |
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: 94571
|
| |
|
|
|
|
| |
some cases.
llvm-svn: 94341
|
| |
|
|
|
|
|
|
|
|
| |
"ASTContext::getTypeSize() / 8". Replace [u]int64_t variables with CharUnits
ones as appropriate.
Also rename RawType, fromRaw(), and getRaw() in CharUnits to QuantityType,
fromQuantity(), and getQuantity() for clarity.
llvm-svn: 93153
|
| |
|
|
|
|
| |
lvalue to poke, no functionality change.
llvm-svn: 93075
|
| |
|
|
|
|
|
| |
run-time initialization, and emit run-time initializers aggresively to avoid
ordering issues with deferred globals.
llvm-svn: 92976
|
| |
|
|
| |
llvm-svn: 92439
|
| |
|
|
| |
llvm-svn: 92420
|