aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/CGVtable.cpp
AgeCommit message (Collapse)Author
2010-02-24Make ComputeThisAdjustmentBaseOffset public for now.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97066 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-24Generate correct vcall offsets when we have a primary virtual base that is ↵Anders Carlsson
not a primary base in the complete class hierarchy. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97039 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-23Implement IsOverriderUsed. This can't be tested yet due to some other bugs :)Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96897 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-23Stub out IsOverriderUsed.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96883 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-23More fixes. Don't try to emit a virtual base vtable if the virtual base in ↵Anders Carlsson
question is a primary virtual base of some other base. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96881 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-23Always emit vcall offset for the primary base, not only if it's virtual. ↵Anders Carlsson
Remove a debug printf, and add the test case that now passes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96880 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-23Simplify the vcall offset calculation and make it give the correct answers ↵Anders Carlsson
:) My test case now has the right values but in the wrong order. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96877 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-23More work on vcall offsets. We now emit the right number of vcall offsets in ↵Anders Carlsson
my local test case, but not the right values. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96874 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-23Move BaseOffset out of the FinalOverriders class.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96853 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-22Change the name of the vtable-debugging environment variable toDouglas Gregor
CLANG_VTABLE_DEBUG. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96785 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-22Don't use NamedDecl::getNameAsCString() when dealing with C++ methods,Douglas Gregor
since they may not have normal identifiers for names. Fixes PR6369. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96784 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-19Add the CK_UnusedFunctionPointer component kind for unused function pointers.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96695 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-19Dump this-adjustments for destructors as well.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96660 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-18Attempt to fix the 32-bit test failures.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96595 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-18Fix another bug and add another class.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96590 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-18More work on vcall offsets.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96587 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-18Start stubbing out vcall offset handling.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96585 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-18Store the base offset of the final overrider in the OverriderInfo struct, to ↵Anders Carlsson
be used for vcall offsets. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96582 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-18Remove some dead code.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96581 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-17silence warning in a cleaner wayChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96520 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-17Make FinalOverriders handle virtual bases correctly. Unfortunately this ↵Anders Carlsson
can't be tested just yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96481 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-17Handle primary bases in AddVCallOffsets.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96461 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-17Silence GCC warning by marking an assert-only variable as unused.Chandler Carruth
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96459 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-17First cut at emitting vcall offsets.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96455 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-17Pass through whether a base is virtual or not.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96449 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-17Correctly calculate base offsets for 'this' pointer adjustments involving ↵Anders Carlsson
virtual bases. This can't be tested yet due to lack of vcall offsets :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96441 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-16Handle layout of vtables for virtual bases.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96355 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-16Move some code around in preparation for virtual base vtables.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96354 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-16Fix a bug where we would not emit secondary vtables for bases of a primary base.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96351 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-16Emit vbase offsets.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96329 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-16More work on the new layout code.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96328 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-14Don't compute final overriders or build vtables for bases that don't need a ↵Anders Carlsson
vtable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96171 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-14Build fix.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96140 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-14Baby steps towards teaching FinalOverriders about virtual bases.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96139 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-14Don't try to layout construction vtables for now.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96138 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-14Improve support for non-virtual 'this' pointer adjustments. With this, it ↵Anders Carlsson
should be possible to use the new vtable layout code for all class hierarchies that do not involve virtual bases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96137 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13Add basic support for simple non-virtual 'this' pointer adjustments.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96136 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13Add support for very simple non-virtual this adjustments in the ↵Anders Carlsson
FinalOverriders class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96133 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13Cleanup; remove some duplicated code.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96131 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13Assert if we encounter this adjustments.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96125 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13Start laying out secondary vtables.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96123 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13Merge base offsets and dump them.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96121 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13Don't make return adjustments for pure virtual member functions.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96120 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13Handle virtual bases in return adjustment types.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96119 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13Handle virtual bases in ComputeBaseOffset.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96117 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13More work on covariant return types. We now handle non-virtual adjustments fine.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96114 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13Fix think-o, attributes can't come *within* the type of the variable.Chandler Carruth
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96099 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13Silence unused variable warning in a build without assertions.Chandler Carruth
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96098 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13Remove dead {include, semicolon, variable}.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96087 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13Use a different name for this iterator. MSVC and clang++ didn't like "I" in ↵Benjamin Kramer
the same scope twice. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96086 91177308-0d34-0410-b5e6-96231b3b80d8