summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGCXX.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Add a new variant of EmitCXXAggrConstructorCall that takes a Value that ↵Anders Carlsson2009-09-231-20/+26
| | | | | | holds the number of elements to construct, to be used when implementing new[]. llvm-svn: 82602
* Move codegen of new and delete to CGCXXExpr.cppAnders Carlsson2009-09-221-187/+0
| | | | llvm-svn: 82585
* Change all the Type::getAsFoo() methods to specializations of Type::getAs().John McCall2009-09-211-18/+18
| | | | | | | | | | | Several of the existing methods were identical to their respective specializations, and so have been removed entirely. Several more 'leaf' optimizations were introduced. The getAsFoo() methods which imposed extra conditions, like getAsObjCInterfacePointerType(), have been left in place. llvm-svn: 82501
* Generate more of the vbase virtual offset for covariant thunks. WIP.Mike Stump2009-09-181-8/+72
| | | | llvm-svn: 82253
* Remove an unnecessary FunctionDecl parameter to the synthesizing functions.Anders Carlsson2009-09-141-24/+24
| | | | llvm-svn: 81759
* Handle delete where the class has a virtual destructor.Anders Carlsson2009-09-141-5/+8
| | | | llvm-svn: 81733
* Rename AddressCXXOfBaseClass to GetAddressCXXOfBaseClass. Add a ↵Anders Carlsson2009-09-121-12/+20
| | | | | | NullCheckValue argument (currently unused). llvm-svn: 81606
* Add CGCXXClass.cpp. and move CodeGenFunction::AddressCXXOfBaseClass there.Anders Carlsson2009-09-121-67/+0
| | | | llvm-svn: 81604
* Fix a crash when generating vtables that contain destructors.Anders Carlsson2009-09-121-5/+4
| | | | llvm-svn: 81587
* Add basic covariant thunk generation support. WIP.Mike Stump2009-09-111-4/+95
| | | | llvm-svn: 81585
* Pass GlobalDecls to GenerateCode and StartFunction.Anders Carlsson2009-09-111-13/+18
| | | | llvm-svn: 81485
* GlobalDecl doesn't have an explicit constructor anymore.Anders Carlsson2009-09-101-10/+8
| | | | llvm-svn: 81481
* Use the right GlobalDecl type for destructors.Anders Carlsson2009-09-091-1/+7
| | | | llvm-svn: 81398
* If a cast expression needs either a conversion function or a constructor to ↵Anders Carlsson2009-09-091-22/+0
| | | | | | be called, generate implicit child expressions that call them. llvm-svn: 81383
* Remove tabs, and whitespace cleanups.Mike Stump2009-09-091-306/+306
| | | | llvm-svn: 81346
* Refine vcall offsets. Cleanups. WIP.Mike Stump2009-09-071-24/+35
| | | | llvm-svn: 81143
* Refine overrides and thunks for virtual bases. Cleanups. WIP.Mike Stump2009-09-051-25/+41
| | | | llvm-svn: 81080
* Cleanup.Mike Stump2009-09-051-6/+7
| | | | llvm-svn: 81078
* Cleanups.Mike Stump2009-09-051-5/+5
| | | | llvm-svn: 81077
* Cleanups.Mike Stump2009-09-051-2/+0
| | | | llvm-svn: 81075
* Cleanups.Mike Stump2009-09-051-21/+10
| | | | llvm-svn: 81074
* Cleanups.Mike Stump2009-09-051-6/+3
| | | | llvm-svn: 81073
* Cleanups.Mike Stump2009-09-051-5/+29
| | | | llvm-svn: 81072
* Cleanups.Mike Stump2009-09-051-6/+5
| | | | llvm-svn: 81071
* Cleanups. WIP.Mike Stump2009-09-051-50/+53
| | | | llvm-svn: 81069
* Install thunks later to fixup overrides. Track space taken by vbaseMike Stump2009-09-051-39/+81
| | | | | | offsets better for thunk refinements. Cleanups. WIP. llvm-svn: 81067
* Don't generate any code for an explicit call to a trivial destructor. Douglas Gregor2009-09-041-0/+8
| | | | | | | | | | | Now that parsing, semantic analysis, and (I think) code generation of pseudo-destructor expressions and explicit destructor calls works, update the example-dynarray.cpp test to destroy the objects it allocates and update the test to actually compile + link. The code seems correct, but the Clang-compiled version dies with a malloc error. Time to debug! llvm-svn: 81025
* Add overidding for methods for vtable building for the secondaryMike Stump2009-09-041-13/+81
| | | | | | vtables. Add thunk generation. WIP. llvm-svn: 81014
* Fix an assertion when initializing a union using a member initializer. (We ↵Anders Carlsson2009-09-021-1/+2
| | | | | | weren't casting from the union type to the initializer type correctly). llvm-svn: 80837
* More overriding base work and some cleanups. WIP.Mike Stump2009-09-011-18/+19
| | | | llvm-svn: 80737
* Split out overriding. WIP.Mike Stump2009-09-011-6/+13
| | | | llvm-svn: 80732
* Assert that we don't have any virtual bases. We can emit dtors for ↵Anders Carlsson2009-09-011-2/+2
| | | | | | polymorphics classes just fune. llvm-svn: 80722
* We can generate constructors/destructors with base classes and non-trivial ↵Anders Carlsson2009-09-011-26/+2
| | | | | | fields just fine now. llvm-svn: 80701
* Rename CXXQualifiedMemberExpr -> CXXAdornedMemberExpr, since we willDouglas Gregor2009-08-311-2/+2
| | | | | | | also be adding explicit template arguments as an additional "adornment". No functionality change. llvm-svn: 80628
* Make IRGen for initializing a member reference work correctly.Eli Friedman2009-08-291-3/+17
| | | | llvm-svn: 80439
* iGenerate vcalls as we build up the methods. WIP.Mike Stump2009-08-281-100/+92
| | | | llvm-svn: 80405
* ir-gen related patch for type conversionFariborz Jahanian2009-08-281-11/+12
| | | | | | with class type conversion methods. WIP. llvm-svn: 80365
* Fixup codegen for static dispatch to a virtual function that wasMike Stump2009-08-261-1/+1
| | | | | | almost correct. :-) llvm-svn: 80181
* ir-gen for type convesion of class objects. WIP.Fariborz Jahanian2009-08-261-0/+21
| | | | llvm-svn: 80178
* When a member reference expression includes a qualifier on the memberDouglas Gregor2009-08-261-3/+5
| | | | | | | | | | | | | | | | | name, e.g., x->Base::f() retain the qualifier (and its source range information) in a new subclass of MemberExpr called CXXQualifiedMemberExpr. Provide construction, transformation, profiling, printing, etc., for this new expression type. When a virtual function is called via a qualified name, don't emit a virtual call. Instead, call that function directly. Mike, could you add a CodeGen test for this, too? llvm-svn: 80167
* Implement virtual dispatch. :-) This is self-consistent with clang,Mike Stump2009-08-261-33/+90
| | | | | | | but not yet necessarily perfectly consistent with gcc. Also addressed Doug and John's comments. llvm-svn: 80137
* Revert r80064 since it broke the build.Anders Carlsson2009-08-261-92/+26
| | | | llvm-svn: 80066
* Implement virtual dispatch. :-) This is self-consistent with clang, but ↵Mike Stump2009-08-261-26/+92
| | | | | | | | not yet necessarily perfectly consistent with gcc. llvm-svn: 80064
* Simplified default construction of array data membersFariborz Jahanian2009-08-261-17/+5
| | | | | | in the constructor prologue. llvm-svn: 80060
* Add a -fno-elide-constructors option to clang-cc.Anders Carlsson2009-08-221-1/+1
| | | | llvm-svn: 79782
* Calculate the address point for a vtable better, and start fleshing out the ↵Mike Stump2009-08-211-16/+48
| | | | | | | | vcall calculations better. llvm-svn: 79687
* Patch to ir-gen copy assigning array members when synthesizing Fariborz Jahanian2009-08-211-7/+103
| | | | | | a copy assignment operator function. llvm-svn: 79681
* Patch to provide ir-gen support in copying array membersFariborz Jahanian2009-08-211-10/+96
| | | | | | | when synthesizing a copy constructor. Arrays's base element may have a trivial or non-trivial copy constructor. llvm-svn: 79653
* Array member construction in prologue of user-declaredFariborz Jahanian2009-08-211-6/+17
| | | | | | constructors. llvm-svn: 79640
* Introduce getConstantArrayElementCount API and use it inFariborz Jahanian2009-08-211-16/+6
| | | | | | construction/destruction of array members. llvm-svn: 79637
OpenPOWER on IntegriCloud