Fariborz Jahanian
859c415567
More detailed analysis of typecast to an objective-c pointer
...
in objective-c++ mode without being too lenient.
llvm-svn: 90895
2009-12-08 23:09:15 +00:00
Mike Stump
4a6b337cfd
Add fixme.
...
llvm-svn: 90884
2009-12-08 22:12:48 +00:00
Mike Stump
e6d54ca553
Remove some old code. WIP.
...
llvm-svn: 90882
2009-12-08 21:46:41 +00:00
Daniel Dunbar
17c4f8d746
Update CGExprConstant for change to emit padding values as undef.
...
- This fixes 2003-05-21-BitfieldHandling.
llvm-svn: 90876
2009-12-08 21:12:32 +00:00
Benjamin Kramer
ba8451b243
Use StringRef in CGDebugInfo::EmitFunctionStart.
...
llvm-svn: 90856
2009-12-08 14:04:35 +00:00
Benjamin Kramer
43c7c5befd
Use a Twine to concatenate the name instead of going through std::string.
...
llvm-svn: 90854
2009-12-08 13:07:37 +00:00
Benjamin Kramer
1d20564b8d
Use Path.makeAbsolute() and make a constant std::string a const char*.
...
llvm-svn: 90851
2009-12-08 11:02:29 +00:00
John McCall
ce54657e95
DeclRefExpr stores a ValueDecl internally.
...
Template instantiation can re-use DeclRefExprs.
llvm-svn: 90848
2009-12-08 09:08:17 +00:00
Eli Friedman
80888c7b38
Build fix.
...
llvm-svn: 90841
2009-12-08 06:54:20 +00:00
Eli Friedman
bb5008a32a
Fix for PR5707: make sure implicit copy constructors initialize the vtable
...
pointer.
llvm-svn: 90840
2009-12-08 06:46:18 +00:00
Eli Friedman
48c6b0d14f
Slight tweak to vtable linkage.
...
llvm-svn: 90832
2009-12-08 04:09:14 +00:00
Eli Friedman
f2c79b6b9c
Misc key function fixes.
...
llvm-svn: 90831
2009-12-08 03:56:49 +00:00
Eli Friedman
8aaff69e86
Fix some direct checks of expressions which might be surrounded by parentheses.
...
llvm-svn: 90825
2009-12-08 02:09:46 +00:00
Eli Friedman
cd6a50f3e5
Make copy assignment operator synthesis not explode for classes with complex
...
or non-record aggregate members.
It might be worth spending some time to optimize this code (and the parallel
code for copy constructors) to memcpy in larger chunks, rather than copying
one member at a time. Not sure exactly how beneficial that would be, but
it seems like could help for large classes with, for example, a vtable pointer
forcing the generation of a copy constructor.
llvm-svn: 90823
2009-12-08 01:57:53 +00:00
Jeffrey Yasskin
567ae47b4a
Remove several .c_str() to be forward-compatible with StringRef.
...
llvm-svn: 90822
2009-12-08 01:46:24 +00:00
Mike Stump
02c23d68cb
Fixup catch parameters with class reference type. WIP.
...
llvm-svn: 90821
2009-12-08 01:29:31 +00:00
Anders Carlsson
220bf4fc5a
No need to add tail padding if the resulting LLVM struct type will have the same size as the final record size.
...
llvm-svn: 90820
2009-12-08 01:24:23 +00:00
Eli Friedman
31bc3ad275
A bunch more thunk fixes from misc testing.
...
(Yes, I do intend to commit some tests for this.)
llvm-svn: 90818
2009-12-07 23:56:34 +00:00
Mike Stump
1d849219a5
Add codegen support for exception specifications. WIP.
...
llvm-svn: 90817
2009-12-07 23:38:24 +00:00
Eli Friedman
f6c175b745
Correctly handle conditional operators involving throw.
...
llvm-svn: 90800
2009-12-07 20:25:53 +00:00
Eli Friedman
5445f6e5b6
Make the comma operator consistently call EnsureInsertPoint.
...
llvm-svn: 90799
2009-12-07 20:18:11 +00:00
Mike Stump
62afe99814
Work around emitters that can't deal with dead code contexts yet.
...
llvm-svn: 90796
2009-12-07 20:12:14 +00:00
Anders Carlsson
1aaecfa02d
Mangle basic_ostream and basic_iostream specializations.
...
llvm-svn: 90794
2009-12-07 19:56:42 +00:00
Mike Stump
52d7141186
Remove obsolete fallback code for objectsize.
...
llvm-svn: 90780
2009-12-07 18:58:11 +00:00
Nuno Lopes
7251327d75
implement PR5274: mark 'restrict' parameters as noalias
...
llvm-svn: 90778
2009-12-07 18:30:06 +00:00
Anders Carlsson
e1b3e6292a
It's OK to try to emit a vtable definition more than once. Fixes PR5697.
...
llvm-svn: 90751
2009-12-07 07:59:52 +00:00
Eli Friedman
c0dacee1e0
Erm, revert for the moment; I didn't test this as thoroughly as I should have
...
(although it does pass regression tests).
llvm-svn: 90747
2009-12-07 04:45:50 +00:00
Eli Friedman
c5d3a6ae3d
Tweak the formula for non-virtual offsets to something which appears a bit
...
more accurate.
llvm-svn: 90746
2009-12-07 04:38:34 +00:00
Anders Carlsson
5ebf8b44e9
Move key functions to a separate map.
...
llvm-svn: 90745
2009-12-07 04:35:11 +00:00
Eli Friedman
f2eda5efd2
Be a bit more complete about accumulating SavedThisAdjustments.
...
llvm-svn: 90723
2009-12-06 22:33:51 +00:00
Eli Friedman
8174f2c23c
Work-in-progess rewrite of thunks: move thunk generation outside of vtable
...
generation, and make sure we generate thunks when the function is defined
rather than when the vtable is defined.
llvm-svn: 90722
2009-12-06 22:01:30 +00:00
Anders Carlsson
3efc6e6f46
Add rudimentary support for member pointers to CGDebugInfo.
...
llvm-svn: 90711
2009-12-06 18:00:51 +00:00
Chris Lattner
72ecc68e11
use new helpers to simplify code.
...
llvm-svn: 90709
2009-12-06 17:22:42 +00:00
Anders Carlsson
fe5f7d916f
Set the correct linkage for VTTs as well.
...
llvm-svn: 90689
2009-12-06 01:09:21 +00:00
Anders Carlsson
232324c5c0
More linkage improvements.
...
llvm-svn: 90687
2009-12-06 00:53:22 +00:00
Anders Carlsson
0911ae8ef2
Pass the desired vtable linkage to GenerateVtable directly. Only call MaybeMarkVirtualImplicitMembersReferenced for non-inline functions.
...
llvm-svn: 90686
2009-12-06 00:23:49 +00:00
Anders Carlsson
7e28c5f2e2
Make GenerateVtable a private member function of CGVtableInfo.
...
llvm-svn: 90684
2009-12-06 00:01:05 +00:00
Anders Carlsson
4ed44eb7d9
Only emit the vtable definition if the class has a key function and we're emitting it, or if the class doesn't have a key function and we are emitting the complete constructor.
...
llvm-svn: 90681
2009-12-05 22:42:54 +00:00
Anders Carlsson
0ab79e22ab
If a class does not have a key function, its linkage should be weak_odr.
...
llvm-svn: 90680
2009-12-05 22:24:38 +00:00
Anders Carlsson
58b271d450
Use createGlobalVariable for creating vtable variables too.
...
llvm-svn: 90679
2009-12-05 22:19:10 +00:00
Anders Carlsson
b3f54b748d
CodeGenModule::GenerateVtable now returns a pointer directly to the vtable and not to the address point.
...
llvm-svn: 90676
2009-12-05 21:28:12 +00:00
Anders Carlsson
a95d4c51dc
Make sure that hte vtable always has an i8* array type.
...
llvm-svn: 90675
2009-12-05 21:09:05 +00:00
Anders Carlsson
c8e39ec79f
Add a function for getting the vtable address point of a class.
...
llvm-svn: 90674
2009-12-05 21:03:56 +00:00
Anders Carlsson
b694f05ffb
Simplify BuildVTT.
...
llvm-svn: 90673
2009-12-05 21:02:25 +00:00
Anders Carlsson
b78d093fcc
Let the VTT builder pretend that getVtable returns a pointer to the vtable and not to the vtable address point.
...
llvm-svn: 90672
2009-12-05 20:58:49 +00:00
Anders Carlsson
78c2898e02
Change getCtorVtable to not return the address point offset, but the global variable.
...
llvm-svn: 90671
2009-12-05 20:42:53 +00:00
Anders Carlsson
5a1a84f9fa
Simplify some code.
...
llvm-svn: 90670
2009-12-05 18:38:15 +00:00
Anders Carlsson
21bbc1e705
Factor vtable related GlobalVariable creation out into a separate function. Add vtable linkage test.
...
llvm-svn: 90667
2009-12-05 17:04:47 +00:00
Chris Lattner
e99c110d06
implement rdar://7346691 by codegen'ing struct/array initializers
...
to a memset or a memcpy from a global when possible.
llvm-svn: 90658
2009-12-05 08:22:11 +00:00
Chris Lattner
e08ea7874a
various cleanups.
...
llvm-svn: 90657
2009-12-05 08:21:30 +00:00
Chris Lattner
ffcd06ea7c
simplify a condition and add a testcase.
...
llvm-svn: 90652
2009-12-05 06:49:57 +00:00
Eli Friedman
6c08ce7706
Skip actually generating the vtable unless we are defining it. This avoids
...
the side-effects of generating the methods in the vtable (including PR5676).
llvm-svn: 90635
2009-12-05 01:05:03 +00:00
Anders Carlsson
a30e1750cd
Don't emit explicit specializations of static member variable declarations.
...
llvm-svn: 90624
2009-12-04 23:50:01 +00:00
Mike Stump
bee78dd31b
Add support for function try blocks.
...
llvm-svn: 90622
2009-12-04 23:26:17 +00:00
John McCall
b96ec56871
Fix "using typename" and the instantiation of non-dependent using declarations.
...
llvm-svn: 90614
2009-12-04 22:46:56 +00:00
Benjamin Kramer
62ab616666
Return bool as a bool instead of a uint64_t.
...
llvm-svn: 90610
2009-12-04 22:45:27 +00:00
Alexis Hunt
9b3a395bf3
Put in FIXME that this mangling is not official in.
...
llvm-svn: 90594
2009-12-04 21:11:13 +00:00
Alexis Hunt
bf2f0c2e34
Switch mangling of literal operator names to a string that's
...
a) legal
b) likely to be chosen as the official mangling
This will break ABI compatibility with all literal operator names,
so you may need to recompile any such code. Sorry.
llvm-svn: 90587
2009-12-04 21:01:37 +00:00
Mike Stump
afe4764fa5
Be sure to instantiate rtti for non-polymorphic bases.
...
llvm-svn: 90586
2009-12-04 20:55:13 +00:00
Anders Carlsson
ce460529c0
When generating a virtual destructor, don't try to make a virtual call to the base class destructor because then we'll just re-enter the same destructor!
...
This was done to fix PR5619, so I went ahead and passed a dummy VTT pointer for now.
llvm-svn: 90578
2009-12-04 19:33:17 +00:00
Mike Stump
875912ac13
Fixup nested try blocks.
...
llvm-svn: 90576
2009-12-04 19:21:57 +00:00
Mike Stump
5c820758f5
Fix warning and be sure to set up the rethrow pointer if we fall off
...
the end of all the catches.
llvm-svn: 90574
2009-12-04 19:03:47 +00:00
Anders Carlsson
bad80eb792
Rename 'Class' to 'MostDerivedClass'
...
llvm-svn: 90573
2009-12-04 18:36:22 +00:00
Anders Carlsson
19462d681a
Store the vtable components in a SmallVector.
...
llvm-svn: 90571
2009-12-04 16:24:46 +00:00
Anders Carlsson
4e1d75f3ed
Use a different ConstantArray::get.
...
llvm-svn: 90570
2009-12-04 16:22:27 +00:00
Anders Carlsson
472404f8a6
Move the vtable vector directly into the Vtable builder.
...
llvm-svn: 90569
2009-12-04 16:19:30 +00:00
Anders Carlsson
7bb7076b51
Change getIndex to return false if the index wasn't found. Avoids an extra hash lookup.
...
llvm-svn: 90568
2009-12-04 15:49:02 +00:00
Eli Friedman
65d87222b2
Minor cleanup; no functionality change.
...
llvm-svn: 90565
2009-12-04 08:52:11 +00:00
Eli Friedman
81fb0d2656
Remove unused argument.
...
llvm-svn: 90563
2009-12-04 08:40:51 +00:00
Eli Friedman
c07aebee90
Eliminate submethods vector.
...
llvm-svn: 90562
2009-12-04 08:36:58 +00:00
Eli Friedman
3d2e9de337
Eliminate the inner loop in VtableBuilder::OverrideMethod.
...
llvm-svn: 90561
2009-12-04 08:34:14 +00:00
Anders Carlsson
5c9e7b16a5
Correctly mangle the 'std' namespace inside extern "C++" blocks.
...
llvm-svn: 90544
2009-12-04 06:23:23 +00:00
Anders Carlsson
f3935b4d4b
Make sure that overridden method decls are always canonical.
...
llvm-svn: 90542
2009-12-04 05:51:56 +00:00
Eli Friedman
94bc2dade6
Fix regression in vtable improvements.
...
llvm-svn: 90540
2009-12-04 04:30:03 +00:00
Mike Stump
8c1253b4c2
Try/catch statements seem to be working well enough to turn on.
...
llvm-svn: 90538
2009-12-04 03:57:07 +00:00
Mike Stump
2ab55765f7
Disable for now, doesn't play nice with the temporary code.
...
llvm-svn: 90537
2009-12-04 03:55:53 +00:00
Eli Friedman
b05eb963e0
Rename method to something easier to search for.
...
llvm-svn: 90536
2009-12-04 03:54:56 +00:00
Anders Carlsson
a93e980fbc
More work in preparation of getting rid of the submethods loop.
...
llvm-svn: 90535
2009-12-04 03:52:52 +00:00
Anders Carlsson
f2f31f4371
Remove an unused member variable.
...
llvm-svn: 90534
2009-12-04 03:46:21 +00:00
Anders Carlsson
e609636e0d
Add a way to get the index of a method. Assert that we have the same index for now.
...
llvm-svn: 90533
2009-12-04 03:41:37 +00:00
Anders Carlsson
b07567c315
Add a premature optimization.
...
llvm-svn: 90532
2009-12-04 03:07:26 +00:00
Anders Carlsson
50f147460a
Add the method directly to the vtable.
...
llvm-svn: 90531
2009-12-04 03:06:03 +00:00
Anders Carlsson
79bce40365
Get rid of the PureVirtualMethods map.
...
llvm-svn: 90530
2009-12-04 02:58:12 +00:00
Anders Carlsson
ddf42c8d80
Move handling of pure virtual methods to AppendMethods (and rename it to AppendMethodsToVtable).
...
llvm-svn: 90529
2009-12-04 02:56:03 +00:00
Anders Carlsson
5b3ea9bf1c
Move covariant thunk handling to AppendMethods too.
...
llvm-svn: 90528
2009-12-04 02:52:22 +00:00
Anders Carlsson
86809cd8ab
Move 'this' pointer adjustment thunks to AppendMethods.
...
llvm-svn: 90527
2009-12-04 02:43:50 +00:00
Eli Friedman
4b1942cb8b
Make functions returning a struct indirectly evaluate the returned struct
...
directly into the sret pointer. This is an optimization in C, but is required
for correctness in C++ for classes with a non-trivial copy constructor.
llvm-svn: 90526
2009-12-04 02:43:40 +00:00
Anders Carlsson
495634e5ac
Factor appending methods to a vtable out into a separate function.
...
llvm-svn: 90525
2009-12-04 02:39:04 +00:00
Anders Carlsson
4c837d258f
Get rid of the Thunks struct too.
...
llvm-svn: 90524
2009-12-04 02:26:15 +00:00
Anders Carlsson
c521f952d6
Remove the CovariantThunk struct.
...
llvm-svn: 90523
2009-12-04 02:22:02 +00:00
Anders Carlsson
597c776c41
Remove the GlobalDecl from the Thunk as well.
...
llvm-svn: 90522
2009-12-04 02:14:12 +00:00
Anders Carlsson
8c889abc1a
Remove the GlobalDecl from the CovariantThunk struct, we can just look it up in the Methods table now.
...
llvm-svn: 90519
2009-12-04 02:11:21 +00:00
Anders Carlsson
cdf1898086
Start populating the VtableMembers structure.
...
llvm-svn: 90517
2009-12-04 02:08:24 +00:00
Anders Carlsson
a84b6e85f0
Add a data structure for efficient storing of vtable methods. Not used yet.
...
llvm-svn: 90515
2009-12-04 02:01:07 +00:00
Mike Stump
114ab9f695
Fixup reference binding for catch parameters.
...
Fixup throws and rethrows to use invoke as appropriate.
llvm-svn: 90513
2009-12-04 01:51:45 +00:00
Eli Friedman
6d11ec8cb8
Update chunk of #if 0'ed code to remove fixed FIXME and make it compile. We
...
probably want to do some sort of performance assessment before enabling it,
though.
llvm-svn: 90510
2009-12-04 01:30:56 +00:00
Mike Stump
5f141b75f9
These are done.
...
llvm-svn: 90494
2009-12-03 22:55:42 +00:00
Mike Stump
7398ff0f07
Improve catch parameter bindings for scalar non-pointers. WIP.
...
llvm-svn: 90492
2009-12-03 22:38:15 +00:00
Anders Carlsson
ce2cd01647
Handle static_assert inside functions.
...
llvm-svn: 90461
2009-12-03 17:26:31 +00:00
Mike Stump
cdeb800152
Eli, I copied my code from this code... Let's fix the souce of the bad idea!
...
Thanks.
llvm-svn: 90458
2009-12-03 16:55:20 +00:00
Eli Friedman
c339081c24
Fix for PR5659: correct a rather nasty oversight in the type conversion for
...
member pointer types.
llvm-svn: 90450
2009-12-03 12:44:31 +00:00
Daniel Dunbar
7230fa5630
Convert ABIArgInfo::dump to raw_ostream.
...
llvm-svn: 90440
2009-12-03 09:13:49 +00:00
Anders Carlsson
c6089fda20
Attempt to fix the MSVC build.
...
llvm-svn: 90427
2009-12-03 07:30:40 +00:00
Eli Friedman
4039f35344
Fix thunk generation for thunks with a parameter with reference type.
...
llvm-svn: 90412
2009-12-03 04:49:52 +00:00
Eli Friedman
551fe84d0e
Minor cleanup.
...
llvm-svn: 90411
2009-12-03 04:27:05 +00:00
Mike Stump
e2d4a2c3a8
Add support for thunking dtors. Oh why does this make my head hurt?
...
llvm-svn: 90409
2009-12-03 03:47:56 +00:00
Mike Stump
2842b4cf86
Reflow.
...
llvm-svn: 90407
2009-12-03 03:40:14 +00:00
Anders Carlsson
dabfa3cd8b
Revert r90402 for now, virt.cpp is failing.
...
llvm-svn: 90406
2009-12-03 03:28:24 +00:00
Anders Carlsson
e692f7c309
Use Eli's ComputeThunkAdjustment for calculating the return adjustment.
...
llvm-svn: 90402
2009-12-03 03:15:31 +00:00
Anders Carlsson
5f91fd64b6
Add CodeGenModule::ComputeThunkAdjustment, which Eli wrote.
...
llvm-svn: 90401
2009-12-03 03:06:55 +00:00
Anders Carlsson
80bc5d5d04
Remove the index from the Thunk struct.
...
llvm-svn: 90400
2009-12-03 02:41:55 +00:00
Anders Carlsson
29a1f751b3
Change the Thunks map to use the vtable index as the key.
...
llvm-svn: 90399
2009-12-03 02:39:59 +00:00
Anders Carlsson
0e1e7632bc
Add the global decl to the Thunk struct.
...
llvm-svn: 90398
2009-12-03 02:36:40 +00:00
Anders Carlsson
9f98f7a9e5
Remove unused struct fields.
...
llvm-svn: 90397
2009-12-03 02:34:59 +00:00
Anders Carlsson
657f139abe
Delay computing the return adjustments for covariant thunks until when they are added to the vtable.
...
llvm-svn: 90396
2009-12-03 02:32:59 +00:00
Anders Carlsson
2ca285fc5c
No need to create the covariant thunk in both places now.
...
llvm-svn: 90394
2009-12-03 02:22:59 +00:00
Anders Carlsson
1157e8fc68
Whoops, forgot to save :)
...
llvm-svn: 90393
2009-12-03 02:20:26 +00:00
Anders Carlsson
06c14b6f65
Remove the index field from the CovariantThunk structure.
...
llvm-svn: 90392
2009-12-03 02:16:14 +00:00
Anders Carlsson
73295f96c5
Change the CovariantThunk map to use the vtable index as its key.
...
llvm-svn: 90391
2009-12-03 02:12:03 +00:00
Anders Carlsson
c38b40a709
Store a GlobalDecl in the return adjustment.
...
llvm-svn: 90387
2009-12-03 02:03:29 +00:00
Anders Carlsson
2bd3c0fa34
Do not include the 'this' pointer adjustment in the covariant return type. Instead, store it in the (now oddly named) Thunks map.
...
llvm-svn: 90386
2009-12-03 01:58:20 +00:00
Anders Carlsson
ca1bf68cfb
Move VtableBuilder::OverrideMethod out of line in preparation of other changes to it. No functionality change.
...
llvm-svn: 90382
2009-12-03 01:54:02 +00:00
Mike Stump
26ada867ba
Remove untrue statement.
...
llvm-svn: 90377
2009-12-03 01:34:13 +00:00
Mike Stump
59daccda08
Note a failure I saw from the g++ testsuite:
...
FAIL: g++.old-deja/g++.mike/eh23.C (test for excess errors)
llvm-svn: 90374
2009-12-03 01:22:05 +00:00
Eli Friedman
37e4c41283
Work-in-progress: teach mangler how to mangle thunks for destructors.
...
llvm-svn: 90360
2009-12-03 00:03:05 +00:00
Mike Stump
2d52ce5f94
Cleanups on exceptional edges don't work at all, yet. This doesn't
...
catch very many of them and if we caught all of them, the errors would
be annoying. I'm working on this next. WIP.
llvm-svn: 90358
2009-12-02 23:46:02 +00:00
Mike Stump
90990965e0
Add a cleanup scope for each catch clause.
...
llvm-svn: 90357
2009-12-02 23:37:16 +00:00
Mike Stump
a68e2a2967
Add missing branch to exit. Seemingly obvious when I look at the
...
code, but to track this down was laborious.
llvm-svn: 90356
2009-12-02 23:28:08 +00:00
Eli Friedman
d4df7753d2
Fix for PR5522 and PR5666: fix a bunch of mangling issues with extern variables
...
and funcctions declared locally within a function.
llvm-svn: 90344
2009-12-02 20:32:49 +00:00
Mike Stump
9732915bf9
Pull the terminate handler up so that we can use it for the catch
...
parameter setup code and set up the catch parameter setup code to
protect that code with terminate.
llvm-svn: 90340
2009-12-02 19:53:57 +00:00
Mike Stump
8a96d3a355
Turn off for now.
...
llvm-svn: 90339
2009-12-02 19:50:41 +00:00
Mike Stump
ae1b85d984
Put the Builder classes into the anonymous namespace.
...
llvm-svn: 90335
2009-12-02 19:07:44 +00:00
Mike Stump
c01c2b87e8
Change rtti/Rtti to RTTI, as it is an acronym.
...
llvm-svn: 90334
2009-12-02 18:57:08 +00:00
Mike Stump
d6eb364b31
Rename CGRtti.cpp to CGRTTI.cpp.
...
llvm-svn: 90331
2009-12-02 18:32:08 +00:00
Mike Stump
a9a590cd12
Avoid warning for getTerminateFn defined but not used.
...
llvm-svn: 90330
2009-12-02 18:20:18 +00:00
Mike Stump
a510597ef9
terminate doesn't throw.
...
llvm-svn: 90308
2009-12-02 08:18:09 +00:00
Mike Stump
33270211a0
More exception handling improvements... WIP.
...
Highlights include:
Add a helper to generate __cxa_free_exception and _ZSt9terminatev.
Add a region to handle EH object deallocation for ctor failures for throw.
Add a terminate handler for __cxa_end_catch.
A framework for adding cleanup actions for the exceptional edges only.
llvm-svn: 90305
2009-12-02 07:41:41 +00:00
Fariborz Jahanian
037bcb5be3
Added an assert.
...
llvm-svn: 90285
2009-12-01 23:35:33 +00:00
Eli Friedman
b2b120f664
Make EmitStoreOfScalar generate a more sane representation of boolean stores.
...
"Fixes" PR5645.
llvm-svn: 90272
2009-12-01 22:31:51 +00:00
Fariborz Jahanian
a6227fd896
(objc2 nonfragile-abi specific). If the translation unit includes an implementation
...
of a subclass (direct or indirect) of a weak_import root class, emit a weak reference
for the root class's metaclass (should complete radar 6815425).
llvm-svn: 90249
2009-12-01 18:25:24 +00:00
Eric Christopher
c377c81dcf
Update for llvm intrinsics change.
...
llvm-svn: 90208
2009-12-01 05:00:51 +00:00
Mike Stump
5406614be9
Much work on try/catch statement. WIP.
...
Highlights include:
Fix __cxa_begin_catch so it now returns a value.
Added getUnwindResumeOrRethrowFn helper to build up calls to
_Unwind_Resume_or_Rethrow.
Broke out object copying code into CopyObject from EmitCXXThrowExpr.
Built up another version of CopyObject that can copy from memory for
use in the catch parameter code.
RTTI generation for type matching for catch.
Code to check for the type match for catch.
Code to generate the catch parameter, WIP, need make sure references
and pointers and copy ctors work.
llvm-svn: 90205
2009-12-01 03:41:18 +00:00
Anders Carlsson
b1d3f7c909
Have ASTRecordLayout keep track of the key function, in preparation of fixing a synthetic ctor/dtor bug.
...
llvm-svn: 90168
2009-11-30 23:41:22 +00:00
Fariborz Jahanian
be64149749
More support for virtual destructor calls.
...
Fixes pr5619
llvm-svn: 90158
2009-11-30 22:07:18 +00:00
Mike Stump
e5311b0d79
Reflow comments and fix 80-col violation.
...
llvm-svn: 90152
2009-11-30 20:08:49 +00:00
Anders Carlsson
c920fa2a74
Fix an assert.
...
llvm-svn: 90149
2009-11-30 19:43:26 +00:00
Daniel Dunbar
2c11cd156e
Don't try to generate common globals for C++ files, instead of depending on the FE to set NoCommon, and simplify CodeGenOptions initialization.
...
llvm-svn: 90119
2009-11-30 08:40:34 +00:00
Eli Friedman
03aa2f1262
Minor cleanup (no functionality change).
...
llvm-svn: 90105
2009-11-30 01:19:33 +00:00
Daniel Dunbar
c76493a65d
Don't pass false (default) for isVolatile parameter to CreateLoad.
...
llvm-svn: 90098
2009-11-29 21:23:36 +00:00
Daniel Dunbar
1dd0164bbe
Explicitly use setVolatile instead of extra IRBuilder argument.
...
llvm-svn: 90095
2009-11-29 21:11:47 +00:00