- Oct 03, 2014
-
-
David Majnemer authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@218965 91177308-0d34-0410-b5e6-96231b3b80d8
-
David Majnemer authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@218964 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Sep 23, 2014
-
-
Reid Kleckner authored
We need to walk the class hierarchy twice: once in depth-first base specifier order for mangling and again in depth-first layout order for vftable layout. Vftable layout seems to depend on the full path from the most derived class to the base containing the vfptr. Fixes PR21031. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@218285 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Sep 12, 2014
-
-
David Majnemer authored
Deleted virtual functions get _purecall inserted into the vftable. Earlier CTPs would simply stick nullptr in there. N.B. MSVC can't handle deleted virtual functions which require return adjusting thunks, they give an error that a deleted function couldn't be called inside of a compiler generated function. We get this correct by making the thunk have a __purecall entry as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@217654 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Aug 09, 2014
-
-
Timur Iskhodzhanov authored
Reviewed at http://reviews.llvm.org/D4829 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215285 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Jun 06, 2014
-
-
Hans Wennborg authored
As suggested by Reid: - class has GVA_Internal linkage -> internal - thunk has return adjustment -> weak_odr, to handle evil corner case [1] - all other normal methods -> linkonce_odr 1. Evil corner case: struct Incomplete; struct A { int a; virtual A *bar(); }; struct B { int b; virtual B *foo(Incomplete); }; struct C : A, B { int c; virtual C *foo(Incomplete); }; C c; Here, the thunk for C::foo() will be emitted when C::foo() is defined, which might be in a different translation unit, so it needs to be weak_odr. Differential Revision: http://reviews.llvm.org/D3992 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@210368 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Apr 18, 2014
-
-
Timur Iskhodzhanov authored
Reviewed at http://reviews.llvm.org/D3410 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206504 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Mar 26, 2014
-
-
Timur Iskhodzhanov authored
Reviewed at http://llvm-reviews.chandlerc.com/D3181 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204786 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Mar 25, 2014
-
-
Reid Kleckner authored
Fixes PR19240. In retrospect, this is a fairly obvious bug. :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204744 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Mar 23, 2014
-
-
Timur Iskhodzhanov authored
Simplify test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp by forcing VFTableBuilder invocation with virtual function calls or constructors codegen Previously the vftables were built at the end of the TU in a reverse-to-random order git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204567 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Mar 20, 2014
-
-
Timur Iskhodzhanov authored
Fix PR19172 - wrong this adjustment calculated for virtual destructor in a class with complex inheritance Reviewed at http://llvm-reviews.chandlerc.com/D3128 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204394 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Mar 07, 2014
-
-
Timur Iskhodzhanov authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203222 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Mar 05, 2014
-
-
Timur Iskhodzhanov authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202978 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Feb 27, 2014
-
-
Reid Kleckner authored
Summary: This merges VFPtrInfo and VBTableInfo into VPtrInfo, since they hold almost the same information. With that change, the vbtable mangling code can easily be applied to vftable data and we magically get the correct, unambiguous vftable names. Fixes PR17748. Reviewers: timurrrr, majnemer CC: cfe-commits Differential Revision: http://llvm-reviews.chandlerc.com/D2893 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202425 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Jan 14, 2014
-
-
Hans Wennborg authored
This makes the C++ ABI depend entirely on the target: MS ABI for -win32 triples, Itanium otherwise. It's no longer possible to do weird combinations. To be able to run a test with a specific ABI without constraining it to a specific triple, new substitutions are added to lit: %itanium_abi_triple and %ms_abi_triple can be used to get the current target triple adjusted to the desired ABI. For example, if the test suite is running with the i686-pc-win32 target, %itanium_abi_triple will expand to i686-pc-mingw32. Differential Revision: http://llvm-reviews.chandlerc.com/D2545 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199250 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Dec 12, 2013
-
-
Timur Iskhodzhanov authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197143 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Nov 08, 2013
-
-
Reid Kleckner authored
This makes it consistent with -fdump-record-layouts, which was moved to outs() in r186219. My reasoning for going with stdout is that when one of these options is present, the layouts are really a program output, and shouldn't be interleaved with diagnostics, which are on stderr. Reviewers: timurrrr Differential Revision: http://llvm-reviews.chandlerc.com/D2127 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194279 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Oct 30, 2013
-
-
Timur Iskhodzhanov authored
Make thunk this/return adjustment ABI-specific. Also, fix the return adjustment when using -cxx-abi microsoft Reviewed at http://llvm-reviews.chandlerc.com/D2026 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193679 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Oct 29, 2013
-
-
Timur Iskhodzhanov authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193610 91177308-0d34-0410-b5e6-96231b3b80d8
-
Timur Iskhodzhanov authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193608 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Oct 16, 2013
-
-
Timur Iskhodzhanov authored
[-cxx-abi microsoft] Fix this argument/parameter offsets for virtual destructors in the presence of virtual bases Reviewed at http://llvm-reviews.chandlerc.com/D1939 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192822 91177308-0d34-0410-b5e6-96231b3b80d8
-
Timur Iskhodzhanov authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192786 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Oct 09, 2013
-
-
Timur Iskhodzhanov authored
Reland 192220 "Abstract out parts of thunk emission code, add support for simple thunks when using -cxx-abi microsoft" with relaxed assertions git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192285 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Oct 08, 2013
-
-
Timur Iskhodzhanov authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192225 91177308-0d34-0410-b5e6-96231b3b80d8
-
Timur Iskhodzhanov authored
Abstract out parts of thunk emission code, add support for simple thunks when using -cxx-abi microsoft Reviewed at http://llvm-reviews.chandlerc.com/D1787 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192220 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Sep 27, 2013
-
-
Timur Iskhodzhanov authored
Abstract out the emission of vtables, add basic support for vtable emission when using -cxx-abi microsoft Reviewed at http://llvm-reviews.chandlerc.com/D1532 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191523 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Jul 30, 2013
-
-
Timur Iskhodzhanov authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187409 91177308-0d34-0410-b5e6-96231b3b80d8
-