| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| * | 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 | |||||
| * | Also track address points for primaries bases. | Mike Stump | 2009-11-13 | 1 | -4/+27 | |
| | | | | | llvm-svn: 88717 | |||||
| * | Code gen. For virtual destructor call on array objects | Fariborz Jahanian | 2009-11-13 | 2 | -2/+10 | |
| | | | | | | | (still part of pr5472). llvm-svn: 88712 | |||||
| * | Obvious fix for PR5474. | Eli Friedman | 2009-11-13 | 1 | -1/+1 | |
| | | | | | llvm-svn: 88696 | |||||
| * | Fixes a code gen. bug for array delete operator call | Fariborz Jahanian | 2009-11-13 | 1 | -3/+6 | |
| | | | | | | | | | | | int 32bit abi (pr5472 related). -This line, and those below, will be ignored-- M lib/CodeGen/CGCXXExpr.cpp llvm-svn: 88695 | |||||
| * | Code gen for arrady delete operator. Fixes pr5472. | Fariborz Jahanian | 2009-11-13 | 3 | -10/+45 | |
| | | | | | llvm-svn: 88680 | |||||
| * | Do not store DIDescriptor directly into a container. Store MDNode directly, ↵ | Devang Patel | 2009-11-13 | 2 | -15/+14 | |
| | | | | | | | through TrackingVH. llvm-svn: 88677 | |||||
| * | This falls into the category of stupid pet tricks. I hate to do this, | Mike Stump | 2009-11-13 | 1 | -0/+3 | |
| | | | | | | | | | but this is necessary to continue work on virtual vtables. We don't want to penalize virtual table building testcases, just because complex virtual conversions don't yet work. llvm-svn: 88676 | |||||
| * | Instead of storing CXXMethodDecls in the vtable builder, store GlobalDecls ↵ | Anders Carlsson | 2009-11-13 | 3 | -61/+98 | |
| | | | | | | | | | so we can represent both the complete and deleting destructors. Also, when encountering a destructor decl, emit entries for both the complete and deleting destructors. Mike, please review. With this change, FileCheck builds and runs the clang test suite without failures! llvm-svn: 88663 | |||||
| * | Wherein the TargetInfo argument to Preprocessor is made 'const' and propogated. | Daniel Dunbar | 2009-11-13 | 3 | -4/+4 | |
| | | | | | llvm-svn: 87087 | |||||
| * | Include header for printf. | Zhongxing Xu | 2009-11-13 | 1 | -0/+1 | |
| | | | | | llvm-svn: 87086 | |||||
| * | Add a special BuildVirtualCall that's going to be used for building calls to ↵ | Anders Carlsson | 2009-11-13 | 3 | -28/+53 | |
| | | | | | | | | | | | | | | | | | destructors. This is needed because when compiling: struct A { virtual ~A(); }; void f(A* a) { delete a; } A's deleting destructor should be called. llvm-svn: 87083 | |||||
| * | Fix two bugs with temporaries: | Anders Carlsson | 2009-11-13 | 1 | -2/+7 | |
| | | | | | | | | | | | | | | | | | | | | | | | 1. For A f() { return A(); } we were incorrectly calling the A destructor on the returned object. 2. For void f(A); void g() { A a; f(a); } we were incorrectly not calling the copy constructor. llvm-svn: 87082 | |||||

