| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
setting up block's descriptor. This is on going work to
support c++ specific issues in setting up blocks
various APIs.
llvm-svn: 105469
|
| |
|
|
| |
llvm-svn: 105448
|
| |
|
|
|
|
| |
up vtable layout by moving away from the old final overrider computation code that had O(N^2) complexity in some cases.
llvm-svn: 105447
|
| |
|
|
|
|
| |
actually care about it. Fixes PR7291.
llvm-svn: 105404
|
| |
|
|
| |
llvm-svn: 105391
|
| |
|
|
|
|
|
| |
types. Executable test will be added to LLVM test suite.
(radar 8041962).
llvm-svn: 105347
|
| |
|
|
|
|
|
|
| |
virtual function from it.
Fixes PR7241.
llvm-svn: 105345
|
| |
|
|
|
|
| |
namespace.
llvm-svn: 105330
|
| |
|
|
|
|
| |
unqualified array type and the qualifiers from it.
llvm-svn: 105326
|
| |
|
|
| |
llvm-svn: 105312
|
| |
|
|
| |
llvm-svn: 105311
|
| |
|
|
|
|
| |
corresponding to the function type.
llvm-svn: 105310
|
| |
|
|
| |
llvm-svn: 105301
|
| |
|
|
| |
llvm-svn: 105299
|
| |
|
|
| |
llvm-svn: 105296
|
| |
|
|
|
|
| |
preparation for an alternate mangler.
llvm-svn: 105224
|
| |
|
|
|
|
|
|
| |
virtual methods.
Please review cdavis, should these methods even be virtual?
llvm-svn: 105218
|
| |
|
|
| |
llvm-svn: 105171
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
| |
isn't possible to compute.
This patch is mostly refactoring; the key change is the addition of the code
starting with the comment, "Check whether the function has a computable LLVM
signature." The solution here is essentially the same as the way the
vtable code handles such functions.
llvm-svn: 105151
|
| |
|
|
| |
llvm-svn: 104999
|
| |
|
|
|
|
|
|
| |
rethrow inside @catch block must use objc_exception_rethrow
API. Fixes radar 8037512. Test will be added to LLVM
test suite.
llvm-svn: 104964
|
| |
|
|
| |
llvm-svn: 104919
|
| |
|
|
| |
llvm-svn: 104916
|
| |
|
|
| |
llvm-svn: 104902
|
| |
|
|
|
|
| |
virtual bases. Just initialize them to null.
llvm-svn: 104868
|
| |
|
|
|
|
| |
LLVM backends support these yet.
llvm-svn: 104867
|
| |
|
|
|
|
|
| |
for 32-bit MIPS processors. Hat-tip to rdivacky for providing gcc dumps
on this.
llvm-svn: 104816
|
| |
|
|
|
|
|
| |
aliases count as definitions regardless of whether their target has been
emitted yet. Fixes PR 7142.
llvm-svn: 104796
|
| |
|
|
| |
llvm-svn: 104795
|
| |
|
|
| |
llvm-svn: 104778
|
| |
|
|
|
|
| |
variable in a local function. Fixes pr7101.
llvm-svn: 104743
|
| |
|
|
|
|
| |
change.
llvm-svn: 104715
|
| |
|
|
|
|
| |
vtables, VTTs, and construction vtables. Fixes PR7201.
llvm-svn: 104675
|
| |
|
|
|
|
|
|
| |
This class only supports name mangling (which is apparently used during C/ObjC
codegen). For now only the Itanium C++ ABI is supported. Patches to add a
second C++ ABI are forthcoming.
llvm-svn: 104630
|
| |
|
|
| |
llvm-svn: 104613
|
| |
|
|
|
|
|
|
|
| |
variables within blocks. We loosely follow GCC's mangling, but since
these are always internal symbols the names don't really matter. I
intend to revisit block mangling later, because GCC's mangling is
rather verbose. <rdar://problem/8015719>.
llvm-svn: 104610
|
| |
|
|
|
|
|
|
|
|
|
|
| |
variables should have that linkage. Otherwise, its static local
variables should have internal linkage. To avoid computing this excessively,
set a function's linkage before we emit code for it.
Previously we were assigning weak linkage to the static variables of
static inline functions in C++, with predictably terrible results. This
fixes that and also gives better linkage than 'weak' when merging is required.
llvm-svn: 104581
|
| |
|
|
| |
llvm-svn: 104473
|
| |
|
|
|
|
|
| |
This works around a crash where malloc reused the memory of an erased BB for a
new BB leaving old cleanup information pointing at the new block.
llvm-svn: 104472
|
| |
|
|
|
|
|
| |
expressions. Essentially, GC breaks a certain form of the return-value
optimization.
llvm-svn: 104454
|
| |
|
|
|
|
| |
first fix broke self-host.
llvm-svn: 104447
|
| |
|
|
| |
llvm-svn: 104446
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
temporaries. There are actually several interrelated fixes here:
- When converting an object to a base class, it's only an lvalue
cast when the original object was an lvalue and we aren't casting
pointer-to-derived to pointer-to-base. Previously, we were
misclassifying derived-to-base casts of class rvalues as lvalues,
causing various oddities (including problems with reference binding
not extending the lifetimes of some temporaries).
- Teach the code for emitting a reference binding how to look
through no-op casts and parentheses directly, since
Expr::IgnoreParenNoOpCasts is just plain wrong for this. Also, make
sure that we properly look through multiple levels of indirection
from the temporary object, but destroy the actual temporary object;
this fixes the reference-binding issue mentioned above.
- Teach Objective-C message sends to bind the result as a temporary
when needed. This is actually John's change, but it triggered the
reference-binding problem above, so it's included here. Now John
can actually test his return-slot improvements.
llvm-svn: 104434
|
| |
|
|
|
|
|
| |
critical for ObjC++ correctness; hard to test independently of various
required Sema changes, though.
llvm-svn: 104422
|
| |
|
|
| |
llvm-svn: 104390
|
| |
|
|
|
|
| |
setting null data member pointers correctly. Fixes PR7139.
llvm-svn: 104387
|
| |
|
|
|
|
|
|
| |
emitted the increment expression. Fixes PR7189.
If someone knows how to write a useful test for this, I'd be grateful.
llvm-svn: 104335
|
| |
|
|
|
|
|
|
| |
not make copies non-POD arguments or arguments passed by reference:
just copy the pointers directly. This eliminates another source of the
dreaded memcpy-of-non-PODs. Fixes PR7188.
llvm-svn: 104327
|
| |
|
|
| |
llvm-svn: 104314
|