summaryrefslogtreecommitdiffstats
path: root/clang/test/Layout/ms-x86-vtordisp.cpp
Commit message (Collapse)AuthorAgeFilesLines
* MS ABI: Pure virtual functions don't contribute to vtordispsDavid Majnemer2014-09-231-0/+26
| | | | | | | | | | | Usually, overriding a virtual function defined in a virtual base required emission of a vtordisp slot in the record. However no vtordisp is needed if the overriding function is pure; it should be impossible to observe the pure virtual method. This fixes PR21046. llvm-svn: 218340
* Fix warning in ms-x86-vtordisp test caseReid Kleckner2014-04-141-2/+2
| | | | llvm-svn: 206224
* MS ABI: #pragma vtordisp(0) only disables new vtordispsDavid Majnemer2014-04-131-0/+36
| | | | | | | | | | | Previously, it was believed that #pragma vtordisp(0) would prohibit the generation of any and all vtordisps. In actuality, it only disables the generation of additional vtordisps. This fixes PR19413. llvm-svn: 206124
* [MS-ABI] Update to vtordisp computationWarren Hunt2014-04-111-1/+58
| | | | | | | | | | A portion of the vtordisp computation that was previously unguarded by a test for the declaration of user defined constructors/destructors was erroniously adding vtordisps to things that shouldn't have them. This patch correctly guards that codepath. In addition, it updates the comments to make them more clear. Test case is included. llvm-svn: 206077
* Fix some -Wdocumentation warnings in Sema.h and try to fix test for win64Reid Kleckner2014-02-131-1/+1
| | | | llvm-svn: 201278
* MS ABI: Implement #pragma vtordisp() and clang-cl /vdNReid Kleckner2014-02-121-2/+118
| | | | | | | | | | | | | | | | | These features are new in VS 2013 and are necessary in order to layout std::ostream correctly. Currently we have an ABI incompatibility when self-hosting with the 2013 stdlib in our convertible_fwd_ostream wrapper in gtest. This change adds another implicit attribute, MSVtorDispAttr, because implicit attributes are currently the best way to make sure the information stays on class templates through instantiation. Reviewers: majnemer Differential Revision: http://llvm-reviews.chandlerc.com/D2746 llvm-svn: 201274
* Remove the -cxx-abi command-line flag.Hans Wennborg2014-01-141-2/+2
| | | | | | | | | | | | | | | 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 llvm-svn: 199250
* [ms-abi] Refactor Microsoft Record LayoutWarren Hunt2014-01-091-120/+134
| | | | | | | | | This patch refactors microsoft record layout to be more "natural". The most dominant change is that vbptrs and vfptrs are injected after the fact. This simplifies the implementation and the math for the offest for the first base/field after the vbptr. llvm-svn: 198818
* [ms-abi] Update Alignment for VtorDispsWarren Hunt2013-12-191-1/+39
| | | | | | | | The alignment impact of the virtual bases apperas to be applied in order, rather than up front. This patch adds the new behavior and provides a test case. llvm-svn: 197639
* Implements 64 bit microsoft record layout and adds lit tests to cover Warren Hunt2013-10-231-13/+69
| | | | | | | | | it. Also removes all of the microsoft C++ ABI related code from the itanium layout builder. Differential Revision: http://llvm-reviews.chandlerc.com/D2003 llvm-svn: 193290
* Correctly check for distructors when realizing vtordispsWarren Hunt2013-10-141-1/+18
| | | | | | | | | | This patch fixes the distructor test when checking for vtordisp requirements in microsoft record layout. A test case is also included. Addresses: http://llvm.org/bugs/show_bug.cgi?id=16406#c7 llvm-svn: 192616
* Lit tests for Microsoft C++ record layout.Warren Hunt2013-10-141-0/+97
They weren't added with the rest of the microsoft record layout patch due me not doing svn add. llvm-svn: 192612
OpenPOWER on IntegriCloud