summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Missing piece of r89173.Eli Friedman2009-11-181-0/+3
| | | | llvm-svn: 89174
* Refactor emitting call to delete operator into common function EmitDeleteCall.Eli Friedman2009-11-182-46/+32
| | | | llvm-svn: 89173
* Fix one last gotcha with typeid.Mike Stump2009-11-181-0/+1
| | | | llvm-svn: 89172
* Cleanup.Mike Stump2009-11-171-3/+3
| | | | llvm-svn: 89166
* Add rtti support for arrays, functiond without prototypes, vectors andMike Stump2009-11-171-15/+13
| | | | | | enums. llvm-svn: 89165
* Add rtti info for function prototypes and refactor. This allowsMike Stump2009-11-171-47/+60
| | | | | | pointer to member functions to work. WIP. llvm-svn: 89161
* This patch finalizes implementatin of weak_importFariborz Jahanian2009-11-171-0/+6
| | | | | | objective-c2 classes (radar 6815425). llvm-svn: 89157
* Add rtti support for pointer to data members.Mike Stump2009-11-172-5/+10
| | | | llvm-svn: 89155
* More cases for weak_import objective-c2 classes.Fariborz Jahanian2009-11-171-0/+3
| | | | | | (still radar 6815425). llvm-svn: 89152
* Add rtti support for non-member pointers. WIP.Mike Stump2009-11-171-12/+81
| | | | llvm-svn: 89148
* More support for weak_import objective-c2 class.Fariborz Jahanian2009-11-171-0/+27
| | | | | | (radar 6815425). llvm-svn: 89146
* Added block type introspection support.David Chisnall2009-11-172-11/+61
| | | | | | As per Fariborz's suggestion, committed now but can be reverted later if the used flag is problematic for Apple. llvm-svn: 89134
* Fixed bug where ivar offsets were being initialized as 0 with the fragile ↵David Chisnall2009-11-171-1/+1
| | | | | | GNU ABI. llvm-svn: 89133
* Skip over shadow using decls during codegen.John McCall2009-11-171-0/+1
| | | | llvm-svn: 89079
* Unify the way destructor epilogues are generated for synthesized and regular ↵Anders Carlsson2009-11-171-103/+79
| | | | | | destructors. Also fix PR5529. llvm-svn: 89034
* More const is always good.Anders Carlsson2009-11-172-6/+6
| | | | llvm-svn: 89033
* Fix typo. Thanks Ted.Mike Stump2009-11-171-1/+1
| | | | llvm-svn: 89031
* Add typeinfo support for T* and const T* for all builtin types T.Mike Stump2009-11-171-0/+13
| | | | llvm-svn: 89030
* Add typeid for the builtin types. WIP.Mike Stump2009-11-173-11/+40
| | | | llvm-svn: 89028
* Ensure we peer through () when handling typeid(*p).Mike Stump2009-11-171-1/+1
| | | | llvm-svn: 89015
* Since we always have 2 edges, we don't need to reserve 3 slot for theMike Stump2009-11-171-1/+1
| | | | | | PHI node. llvm-svn: 89005
* Minor CFG refinements for typeid and dynamic_cast.Mike Stump2009-11-171-4/+1
| | | | llvm-svn: 89004
* Fix up EmitMemberInitializer to handle many more cases.Eli Friedman2009-11-161-11/+24
| | | | llvm-svn: 88999
* Reorganize EmitMemberInitializer to put anonymous unions on the common codepath.Eli Friedman2009-11-161-29/+31
| | | | llvm-svn: 88995
* Make member initializers for union members work correctly.Eli Friedman2009-11-161-1/+1
| | | | llvm-svn: 88989
* Implement dynamic_cast<void*>(E).Mike Stump2009-11-161-51/+64
| | | | llvm-svn: 88988
* Implement a few more cases for copy constructor synthesis.Eli Friedman2009-11-161-2/+10
| | | | llvm-svn: 88971
* First part of changes to eliminate problems with cv-qualifiers andDouglas Gregor2009-11-162-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | sugared types. The basic problem is that our qualifier accessors (getQualifiers, getCVRQualifiers, isConstQualified, etc.) only look at the current QualType and not at any qualifiers that come from sugared types, meaning that we won't see these qualifiers through, e.g., typedefs: typedef const int CInt; typedef CInt Self; Self.isConstQualified() currently returns false! Various bugs (e.g., PR5383) have cropped up all over the front end due to such problems. I'm addressing this problem by splitting each qualifier accessor into two versions: - the "local" version only returns qualifiers on this particular QualType instance - the "normal" version that will eventually combine qualifiers from this QualType instance with the qualifiers on the canonical type to produce the full set of qualifiers. This commit adds the local versions and switches a few callers from the "normal" version (e.g., isConstQualified) over to the "local" version (e.g., isLocalConstQualified) when that is the right thing to do, e.g., because we're printing or serializing the qualifiers. Also, switch a bunch of Context.getCanonicalType(T1).getUnqualifiedType() == Context.getCanonicalType(T2).getQualifiedType() expressions over to Context.hasSameUnqualifiedType(T1, T2) llvm-svn: 88969
* Clean up scalar cast kind handling; make cast kind handling explicitly handleEli Friedman2009-11-161-36/+61
| | | | | | more cases. No intended visible change. llvm-svn: 88968
* Audit done, all the required casts are already done.Mike Stump2009-11-161-2/+0
| | | | llvm-svn: 88966
* revert r88963.Devang Patel2009-11-161-1/+0
| | | | llvm-svn: 88965
* Use TrackingVH to hold forward decl. This one is for RecordType.Devang Patel2009-11-161-0/+1
| | | | llvm-svn: 88963
* Parallel fix to r88951: use TrackingVH to hold forward decl.Eli Friedman2009-11-161-1/+2
| | | | llvm-svn: 88962
* Fix valgrind uninitialized error.Eli Friedman2009-11-161-4/+6
| | | | llvm-svn: 88952
* Use TrackingVH to hold forward decl.Devang Patel2009-11-161-1/+2
| | | | llvm-svn: 88951
* Fixed two minor differences between clang and GCC-generated runtime ↵David Chisnall2009-11-161-1/+3
| | | | | | structures for the GNU runtime. llvm-svn: 88937
* The ssp and sspreq function attributes should only be applied to function ↵Anders Carlsson2009-11-162-5/+5
| | | | | | definitions, not declarations or calls. llvm-svn: 88915
* Pass a value for the isSigned parameter of CreateIntCast, rather thanDuncan Sands2009-11-161-5/+10
| | | | | | passing the name (an exotic way of specifying that the result is signed!). llvm-svn: 88909
* Implement most of dynamic_cast. WIP.Mike Stump2009-11-164-6/+132
| | | | llvm-svn: 88901
* Make GetAddrOfConstantStringFromLiteral return a constant of the correct type.Eli Friedman2009-11-161-1/+8
| | | | | | | This doesn't have any visible effects at the moment because normally the implicit cast code forces the type to the expected type. llvm-svn: 88896
* Some minor cleanup for EmitCastLValue.Eli Friedman2009-11-161-11/+7
| | | | llvm-svn: 88894
* Fix a couple of cases where we weren't generating the right kind of callEli Friedman2009-11-161-8/+19
| | | | | | for a call to a virtual function. llvm-svn: 88891
* Implement two-argument form of delete operator.Eli Friedman2009-11-161-0/+8
| | | | llvm-svn: 88890
* When generating the deleting ctor, emit a call to delete.Anders Carlsson2009-11-151-4/+24
| | | | llvm-svn: 88878
* Peer through refernces for typeid. WIP.Mike Stump2009-11-151-0/+2
| | | | llvm-svn: 88871
* Finish off zero check for typeid(*p) so that it will do a __cxa_bad_typeid.Mike Stump2009-11-151-2/+25
| | | | llvm-svn: 88852
* Implement typeid for class types.Mike Stump2009-11-154-1/+50
| | | | llvm-svn: 88843
* Finish off support for typeinfo generation for classes.Mike Stump2009-11-151-9/+56
| | | | llvm-svn: 88828
* Finisgh off rest of class_type_info rtti generation.Mike Stump2009-11-143-14/+120
| | | | llvm-svn: 88823
* Handle CK_BitCast in EmitCastLValue.Anders Carlsson2009-11-141-3/+12
| | | | llvm-svn: 88810
OpenPOWER on IntegriCloud