summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGCXX.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
* We now support overriding base functions in vtables. WIP.Mike Stump2009-08-211-17/+69
| | | | llvm-svn: 79587
* Patch to ir-gen destruction of array member elements in revers orderFariborz Jahanian2009-08-201-0/+60
| | | | | | of their construction. llvm-svn: 79571
* ir-gen patch to destruct array members. WIP.Fariborz Jahanian2009-08-201-13/+40
| | | | llvm-svn: 79565
* Refine vbase offsets for the inductive case. Things are now startingMike Stump2009-08-201-7/+7
| | | | | | to come together nicely. Still a WIP. llvm-svn: 79521
* Ensure we don't output repeated vbase offsets. I have a testcase forMike Stump2009-08-201-22/+23
| | | | | | | this, but need to fixup the actual offset value before I can check it in. WIP. llvm-svn: 79506
* Test case for my last patch plus a minor clean up.Fariborz Jahanian2009-08-201-4/+2
| | | | llvm-svn: 79500
* ir-gen for multi-dimensional array construction. WIP.Fariborz Jahanian2009-08-201-6/+18
| | | | llvm-svn: 79497
* Removed unneeded code for break/continue statements inFariborz Jahanian2009-08-191-7/+0
| | | | | | | | manufactured for-loop per Anders feedback (thanks). - Fariborz llvm-svn: 79466
* ir-gen for constructing arrays as non-static data members. WIP.Fariborz Jahanian2009-08-191-1/+95
| | | | llvm-svn: 79464
* Switch to SmallString::str from SmallString::c_str.Daniel Dunbar2009-08-191-5/+3
| | | | | | - Several FIXMEs due to non-Twinification of IRBuilder. llvm-svn: 79455
* One second thought, I think I want to limit this class to just vtableMike Stump2009-08-191-5/+5
| | | | | | building activities. llvm-svn: 79438
* Cleanup: fold IndirectPrimary into builder.Mike Stump2009-08-191-12/+9
| | | | llvm-svn: 79423
* We don't want to confuse this layout with the BLayout from the builder.Mike Stump2009-08-191-3/+3
| | | | llvm-svn: 79422
* Restore vbase offsets for classes without a primary.Mike Stump2009-08-191-1/+1
| | | | llvm-svn: 79402
* Refine vcalls a little.Mike Stump2009-08-191-20/+32
| | | | llvm-svn: 79400
* Cleanup.Mike Stump2009-08-181-4/+4
| | | | llvm-svn: 79374
* Cleanups. Move GenerateRtti to CodeGenModule.Mike Stump2009-08-181-14/+15
| | | | llvm-svn: 79372
* Move the rest of the vtable building code into the new builder.Mike Stump2009-08-181-106/+102
| | | | llvm-svn: 79370
* Suck up method generation.Mike Stump2009-08-181-19/+19
| | | | llvm-svn: 79367
* Split out vtable bulding code into a builder.Mike Stump2009-08-181-19/+25
| | | | llvm-svn: 79366
* Patch to 1) synthesizing non-trivial default destructor whenFariborz Jahanian2009-08-171-13/+102
| | | | | | | | one is not provided by user. 2) More complete emission of ctor prologue when it has no initializer list or when it is synthesized. llvm-svn: 79269
* Remove an ErrorUnsupported call.Anders Carlsson2009-08-171-1/+1
| | | | llvm-svn: 79261
* Improve handling of delete expressions.Anders Carlsson2009-08-161-0/+57
| | | | llvm-svn: 79205
* Cleanups and fixups for calculating the virtual base offsets. WIP.Mike Stump2009-08-161-76/+83
| | | | llvm-svn: 79156
OpenPOWER on IntegriCloud