summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGVtable.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Handle primary bases in AddVCallOffsets.Anders Carlsson2010-02-171-2/+9
| | | | llvm-svn: 96461
* Silence GCC warning by marking an assert-only variable as unused.Chandler Carruth2010-02-171-1/+1
| | | | llvm-svn: 96459
* First cut at emitting vcall offsets.Anders Carlsson2010-02-171-3/+77
| | | | llvm-svn: 96455
* Pass through whether a base is virtual or not.Anders Carlsson2010-02-171-17/+26
| | | | llvm-svn: 96449
* Correctly calculate base offsets for 'this' pointer adjustments involving ↵Anders Carlsson2010-02-171-3/+40
| | | | | | virtual bases. This can't be tested yet due to lack of vcall offsets :) llvm-svn: 96441
* Handle layout of vtables for virtual bases.Anders Carlsson2010-02-161-1/+41
| | | | llvm-svn: 96355
* Move some code around in preparation for virtual base vtables.Anders Carlsson2010-02-161-9/+18
| | | | llvm-svn: 96354
* Fix a bug where we would not emit secondary vtables for bases of a primary base.Anders Carlsson2010-02-161-12/+29
| | | | llvm-svn: 96351
* Emit vbase offsets.Anders Carlsson2010-02-161-4/+38
| | | | llvm-svn: 96329
* More work on the new layout code.Anders Carlsson2010-02-161-11/+66
| | | | llvm-svn: 96328
* Don't compute final overriders or build vtables for bases that don't need a ↵Anders Carlsson2010-02-141-3/+17
| | | | | | vtable. llvm-svn: 96171
* Build fix.Anders Carlsson2010-02-141-1/+1
| | | | llvm-svn: 96140
* Baby steps towards teaching FinalOverriders about virtual bases.Anders Carlsson2010-02-141-14/+31
| | | | llvm-svn: 96139
* Don't try to layout construction vtables for now.Anders Carlsson2010-02-141-1/+2
| | | | llvm-svn: 96138
* Improve support for non-virtual 'this' pointer adjustments. With this, it ↵Anders Carlsson2010-02-141-27/+41
| | | | | | should be possible to use the new vtable layout code for all class hierarchies that do not involve virtual bases. llvm-svn: 96137
* Add basic support for simple non-virtual 'this' pointer adjustments.Anders Carlsson2010-02-131-5/+85
| | | | llvm-svn: 96136
* Add support for very simple non-virtual this adjustments in the ↵Anders Carlsson2010-02-131-17/+68
| | | | | | FinalOverriders class. llvm-svn: 96133
* Cleanup; remove some duplicated code.Anders Carlsson2010-02-131-96/+4
| | | | llvm-svn: 96131
* Assert if we encounter this adjustments.Anders Carlsson2010-02-131-2/+9
| | | | llvm-svn: 96125
* Start laying out secondary vtables.Anders Carlsson2010-02-131-10/+17
| | | | llvm-svn: 96123
* Merge base offsets and dump them.Anders Carlsson2010-02-131-6/+42
| | | | llvm-svn: 96121
* Don't make return adjustments for pure virtual member functions.Anders Carlsson2010-02-131-5/+8
| | | | llvm-svn: 96120
* Handle virtual bases in return adjustment types.Anders Carlsson2010-02-131-17/+37
| | | | llvm-svn: 96119
* Handle virtual bases in ComputeBaseOffset.Anders Carlsson2010-02-131-10/+27
| | | | llvm-svn: 96117
* More work on covariant return types. We now handle non-virtual adjustments fine.Anders Carlsson2010-02-131-27/+96
| | | | llvm-svn: 96114
* Fix think-o, attributes can't come *within* the type of the variable.Chandler Carruth2010-02-131-1/+1
| | | | llvm-svn: 96099
* Silence unused variable warning in a build without assertions.Chandler Carruth2010-02-131-1/+2
| | | | llvm-svn: 96098
* Remove dead {include, semicolon, variable}.Benjamin Kramer2010-02-131-5/+1
| | | | llvm-svn: 96087
* Use a different name for this iterator. MSVC and clang++ didn't like "I" in ↵Benjamin Kramer2010-02-131-3/+3
| | | | | | the same scope twice. llvm-svn: 96086
* More work on return type adjustments in the new vtable builder.Anders Carlsson2010-02-131-34/+155
| | | | llvm-svn: 96070
* Switch the standard DeclarationName comparator to be a tri-valued comparator.John McCall2010-02-131-4/+5
| | | | | | | Use that while fixing a nasty misuse of qsort in vtable codegen which, somehow, has not actually caused a crash. llvm-svn: 96062
* if-0 out printf.Eli Friedman2010-02-131-1/+1
| | | | llvm-svn: 96052
* Fix a refacto that broke the clang-on-clang build.Anders Carlsson2010-02-121-7/+1
| | | | llvm-svn: 95994
* Start stubbing out more of the covariant thunk support.Anders Carlsson2010-02-121-10/+20
| | | | llvm-svn: 95990
* Keep track of whether a final overrider needs a return type adjustment.Anders Carlsson2010-02-121-5/+26
| | | | llvm-svn: 95985
* Move overrider out into a separate struct.Anders Carlsson2010-02-121-13/+25
| | | | llvm-svn: 95984
* Keep track of the address points for all primary bases, and add the ability ↵Anders Carlsson2010-02-121-11/+48
| | | | | | to dump multiple address points for a single offset. llvm-svn: 95970
* Fix a bug causing an assertion when a covariant return type differed fromJohn McCall2010-02-121-9/+12
| | | | | | an overriden type only by reduced qualification. llvm-svn: 95968
* More work on vtable layout. We can now layout vtables with primary bases.Anders Carlsson2010-02-121-52/+138
| | | | llvm-svn: 95965
* When dumping vtables, dump whether a virtual member function is pure or not.Anders Carlsson2010-02-121-1/+9
| | | | llvm-svn: 95963
* More work on the final overriders.Anders Carlsson2010-02-121-10/+130
| | | | llvm-svn: 95954
* Stub out the final overriders class.Anders Carlsson2010-02-111-1/+128
| | | | llvm-svn: 95922
* Use getAs instead of cast/dyn_cast on types. (I'm sure Doug will appreciate ↵Anders Carlsson2010-02-111-6/+6
| | | | | | this). llvm-svn: 95911
* Move two functions to the top. No functionality change.Anders Carlsson2010-02-111-77/+77
| | | | llvm-svn: 95908
* More vtable layout dumper improvements. Handle destructors, dump the ↵Anders Carlsson2010-02-111-12/+61
| | | | | | complete function type of the member functions (using PredefinedExpr::ComputeName. llvm-svn: 95887
* Keep track of, and dump, vtable address points.Anders Carlsson2010-02-111-2/+33
| | | | llvm-svn: 95874
* Check in the beginnings of my new vtable layout builder idea.Anders Carlsson2010-02-111-8/+208
| | | | | | | | Right now, it's off by default but can be tested by passing -fdump-vtable-layouts to clang -cc1. This option will cause all vtables that will normally be emitted as part of codegen to also be dumped using the new layout code. I've also added a very simple new vtable layout test case. llvm-svn: 95865
* remove a big chunk of #if 0 code.Chris Lattner2010-02-031-58/+0
| | | | llvm-svn: 95201
* Move pointer to data member emission to CodeGenModule and use it in ↵Anders Carlsson2010-02-021-6/+6
| | | | | | CGExprConstant. Fixes PR5674. llvm-svn: 95063
* Refine the non-virtual this adjustments for thunks by using the offsetMike Stump2010-01-261-0/+6
| | | | | | to the declaring class from the nearest virtual base class. WIP. llvm-svn: 94606
OpenPOWER on IntegriCloud