John McCall
9b382dde92
Convert Clang over to resuming from landing pads with llvm.eh.resume.
...
It's quite likely that this will explode, but I need to know how. :)
llvm-svn: 132269
2011-05-28 21:13:02 +00:00
Eli Friedman
380b8dad6b
Back out r132209; it's breaking nightly tests.
...
llvm-svn: 132219
2011-05-27 21:32:17 +00:00
John McCall
63fb333fa4
Implement a new, much improved version of the cleanup hack. We just need
...
to be careful to emit landing pads that are always prepared to handle a
cleanup path. This is correct mostly because of the fix to the LLVM
inliner, r132200.
llvm-svn: 132209
2011-05-27 20:01:14 +00:00
John McCall
036f2f6b35
The array-size operand to a new-expression is not necessarily a size_t.
...
It can be larger, it can be smaller, it can be signed, whatever. Handle
all the crazy cases with grace and spirit.
llvm-svn: 131378
2011-05-15 07:14:44 +00:00
Eli Friedman
db42a3e876
Make sure we or together the overflow flags of the multiply and add, so the
...
check is triggered appropriately. Reported on cfe-dev.
llvm-svn: 129231
2011-04-09 19:54:33 +00:00
Rafael Espindola
05842dabb8
Move unnamed_addr after the function arguments on Sabre's request.
...
llvm-svn: 124210
2011-01-25 19:10:24 +00:00
Rafael Espindola
0ee986c1f1
Add unnamed_addr to constructors and destructors.
...
llvm-svn: 123197
2011-01-11 00:26:26 +00:00
John McCall
68ff03728a
Implement ARM static local initialization guards, which are more compact than
...
Itanium guards and use a slightly different compiled-in API.
llvm-svn: 113330
2010-09-08 01:44:27 +00:00
John McCall
0d635f53a8
Re-commit r112916 with an additional fix for the self-host failures.
...
I've audited the remaining getFunctionInfo call sites.
llvm-svn: 112936
2010-09-03 01:26:39 +00:00
John McCall
c32f94b4ce
Revert r112916, it's breaking selfhost pretty badly.
...
llvm-svn: 112925
2010-09-03 00:40:45 +00:00
John McCall
12d3891a27
It's not safe to use the generic CXXMethodDecl overload of CGT::getFunctionInfo
...
to set up a destructor call, because ABIs can tweak these conventions.
Fixes rdar://problem/8386802.
llvm-svn: 112916
2010-09-03 00:01:57 +00:00
John McCall
db8af38670
Stupid emacs keystroke.
...
llvm-svn: 112815
2010-09-02 10:15:05 +00:00
John McCall
8ed55a54fd
Abstract IR generation of array cookies into the C++ ABI class and
...
implement ARM array cookies. Also fix a few unfortunate bugs:
- throwing dtors in deletes prevented the allocation from being deleted
- adding the cookie to the new[] size was not being considered for
overflow (and, more seriously, was screwing up the earlier checks)
- deleting an array via a pointer to array of class type was not
causing any destructors to be run and was passing the unadjusted
pointer to the deallocator
- lots of address-space problems, in case anyone wants to support
free store in a variant address space :)
llvm-svn: 112814
2010-09-02 09:58:18 +00:00
John McCall
5d865c3292
Teach IR generation to return 'this' from constructors and destructors
...
under the ARM ABI.
llvm-svn: 112588
2010-08-31 07:33:07 +00:00
Rafael Espindola
b35e7b8659
Fix tests that I missed from my previous commit.
...
llvm-svn: 106118
2010-06-16 17:49:52 +00:00
Chris Lattner
5e8416a77f
emit dtors with the right calling convention in -fno-use-cxa-atexit
...
mode.
llvm-svn: 102377
2010-04-26 20:35:54 +00:00