Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Added block type introspection support. | David Chisnall | 2009-11-17 | 2 | -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 Chisnall | 2009-11-17 | 1 | -1/+1 | |
| | | | | | | GNU ABI. llvm-svn: 89133 | |||||
* | Skip over shadow using decls during codegen. | John McCall | 2009-11-17 | 1 | -0/+1 | |
| | | | | llvm-svn: 89079 | |||||
* | Unify the way destructor epilogues are generated for synthesized and regular ↵ | Anders Carlsson | 2009-11-17 | 1 | -103/+79 | |
| | | | | | | destructors. Also fix PR5529. llvm-svn: 89034 | |||||
* | More const is always good. | Anders Carlsson | 2009-11-17 | 2 | -6/+6 | |
| | | | | llvm-svn: 89033 | |||||
* | Fix typo. Thanks Ted. | Mike Stump | 2009-11-17 | 1 | -1/+1 | |
| | | | | llvm-svn: 89031 | |||||
* | Add typeinfo support for T* and const T* for all builtin types T. | Mike Stump | 2009-11-17 | 1 | -0/+13 | |
| | | | | llvm-svn: 89030 | |||||
* | Add typeid for the builtin types. WIP. | Mike Stump | 2009-11-17 | 3 | -11/+40 | |
| | | | | llvm-svn: 89028 | |||||
* | Ensure we peer through () when handling typeid(*p). | Mike Stump | 2009-11-17 | 1 | -1/+1 | |
| | | | | llvm-svn: 89015 | |||||
* | Since we always have 2 edges, we don't need to reserve 3 slot for the | Mike Stump | 2009-11-17 | 1 | -1/+1 | |
| | | | | | | PHI node. llvm-svn: 89005 | |||||
* | Minor CFG refinements for typeid and dynamic_cast. | Mike Stump | 2009-11-17 | 1 | -4/+1 | |
| | | | | llvm-svn: 89004 | |||||
* | Fix up EmitMemberInitializer to handle many more cases. | Eli Friedman | 2009-11-16 | 1 | -11/+24 | |
| | | | | llvm-svn: 88999 | |||||
* | Reorganize EmitMemberInitializer to put anonymous unions on the common codepath. | Eli Friedman | 2009-11-16 | 1 | -29/+31 | |
| | | | | llvm-svn: 88995 | |||||
* | Make member initializers for union members work correctly. | Eli Friedman | 2009-11-16 | 1 | -1/+1 | |
| | | | | llvm-svn: 88989 | |||||
* | Implement dynamic_cast<void*>(E). | Mike Stump | 2009-11-16 | 1 | -51/+64 | |
| | | | | llvm-svn: 88988 | |||||
* | Implement a few more cases for copy constructor synthesis. | Eli Friedman | 2009-11-16 | 1 | -2/+10 | |
| | | | | llvm-svn: 88971 | |||||
* | First part of changes to eliminate problems with cv-qualifiers and | Douglas Gregor | 2009-11-16 | 2 | -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 handle | Eli Friedman | 2009-11-16 | 1 | -36/+61 | |
| | | | | | | more cases. No intended visible change. llvm-svn: 88968 | |||||
* | Audit done, all the required casts are already done. | Mike Stump | 2009-11-16 | 1 | -2/+0 | |
| | | | | llvm-svn: 88966 | |||||
* | revert r88963. | Devang Patel | 2009-11-16 | 1 | -1/+0 | |
| | | | | llvm-svn: 88965 | |||||
* | Use TrackingVH to hold forward decl. This one is for RecordType. | Devang Patel | 2009-11-16 | 1 | -0/+1 | |
| | | | | llvm-svn: 88963 | |||||
* | Parallel fix to r88951: use TrackingVH to hold forward decl. | Eli Friedman | 2009-11-16 | 1 | -1/+2 | |
| | | | | llvm-svn: 88962 | |||||
* | Fix valgrind uninitialized error. | Eli Friedman | 2009-11-16 | 1 | -4/+6 | |
| | | | | llvm-svn: 88952 | |||||
* | Use TrackingVH to hold forward decl. | Devang Patel | 2009-11-16 | 1 | -1/+2 | |
| | | | | llvm-svn: 88951 | |||||
* | Fixed two minor differences between clang and GCC-generated runtime ↵ | David Chisnall | 2009-11-16 | 1 | -1/+3 | |
| | | | | | | structures for the GNU runtime. llvm-svn: 88937 | |||||
* | The ssp and sspreq function attributes should only be applied to function ↵ | Anders Carlsson | 2009-11-16 | 2 | -5/+5 | |
| | | | | | | definitions, not declarations or calls. llvm-svn: 88915 | |||||
* | Pass a value for the isSigned parameter of CreateIntCast, rather than | Duncan Sands | 2009-11-16 | 1 | -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 Stump | 2009-11-16 | 4 | -6/+132 | |
| | | | | llvm-svn: 88901 | |||||
* | Make GetAddrOfConstantStringFromLiteral return a constant of the correct type. | Eli Friedman | 2009-11-16 | 1 | -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 Friedman | 2009-11-16 | 1 | -11/+7 | |
| | | | | llvm-svn: 88894 | |||||
* | Fix a couple of cases where we weren't generating the right kind of call | Eli Friedman | 2009-11-16 | 1 | -8/+19 | |
| | | | | | | for a call to a virtual function. llvm-svn: 88891 | |||||
* | Implement two-argument form of delete operator. | Eli Friedman | 2009-11-16 | 1 | -0/+8 | |
| | | | | llvm-svn: 88890 | |||||
* | When generating the deleting ctor, emit a call to delete. | Anders Carlsson | 2009-11-15 | 1 | -4/+24 | |
| | | | | llvm-svn: 88878 | |||||
* | Peer through refernces for typeid. WIP. | Mike Stump | 2009-11-15 | 1 | -0/+2 | |
| | | | | llvm-svn: 88871 | |||||
* | Finish off zero check for typeid(*p) so that it will do a __cxa_bad_typeid. | Mike Stump | 2009-11-15 | 1 | -2/+25 | |
| | | | | llvm-svn: 88852 | |||||
* | Implement typeid for class types. | Mike Stump | 2009-11-15 | 4 | -1/+50 | |
| | | | | llvm-svn: 88843 | |||||
* | Finish off support for typeinfo generation for classes. | Mike Stump | 2009-11-15 | 1 | -9/+56 | |
| | | | | llvm-svn: 88828 | |||||
* | Finisgh off rest of class_type_info rtti generation. | Mike Stump | 2009-11-14 | 3 | -14/+120 | |
| | | | | llvm-svn: 88823 | |||||
* | Handle CK_BitCast in EmitCastLValue. | Anders Carlsson | 2009-11-14 | 1 | -3/+12 | |
| | | | | llvm-svn: 88810 | |||||
* | Canonicalize the type before trying to create a debug type. | Anders Carlsson | 2009-11-14 | 1 | -26/+26 | |
| | | | | llvm-svn: 88808 | |||||
* | Have CGDebugInfo::getOrCreateType cache the QualType instead of having every ↵ | Anders Carlsson | 2009-11-14 | 1 | -19/+4 | |
| | | | | | | ConvertType overload do it. llvm-svn: 88807 | |||||
* | Build up more of the rtti info for a class. WIP. | Mike Stump | 2009-11-14 | 1 | -26/+49 | |
| | | | | llvm-svn: 88795 | |||||
* | Add the name to the rtti data structure. | Mike Stump | 2009-11-14 | 1 | -4/+35 | |
| | | | | llvm-svn: 88792 | |||||
* | Avoid assert-crash in a case where the expression passed to EmitConstantExpr | Eli Friedman | 2009-11-14 | 1 | -3/+1 | |
| | | | | | | legitimately has side-effects (and needs to be generated as a non-constant). llvm-svn: 88767 | |||||
* | Make __func__ and friends work correctly within the initializer for a static | Eli Friedman | 2009-11-14 | 1 | -6/+8 | |
| | | | | | | local variable. llvm-svn: 88766 | |||||
* | PR5483: Generate missing form of destructor when it is virtual. (Someone | Eli Friedman | 2009-11-14 | 1 | -0/+2 | |
| | | | | | | | more familiar with this stuff should double-check that there isn't some more general rule; this is purely from inspecting g++ output.) llvm-svn: 88755 | |||||
* | Generate the old API when sending message to super | Fariborz Jahanian | 2009-11-14 | 1 | -1/+4 | |
| | | | | | | in a category implementation (objc 32bit api related). llvm-svn: 88741 | |||||
* | Handle CXXDefaultArgExprs in EmitLValue. Fixes PR5484. | Anders Carlsson | 2009-11-14 | 1 | -2/+4 | |
| | | | | llvm-svn: 88735 | |||||
* | Mangling support for typeinfo names. | Mike Stump | 2009-11-14 | 2 | -0/+18 | |
| | | | | llvm-svn: 88726 | |||||
* | Handle descructor printing better. | Mike Stump | 2009-11-13 | 1 | -6/+7 | |
| | | | | llvm-svn: 88723 |