summaryrefslogtreecommitdiffstats
path: root/clang/test/Layout/ms-x86-basic-layout.cpp
Commit message (Collapse)AuthorAgeFilesLines
* __declspec is not a core Clang language extension. Instead, require ↵Aaron Ballman2015-05-261-2/+2
| | | | | | | -fms-extensions or -fborland to enable the language extension. Note: __declspec is also temporarily enabled when compiling for a CUDA target because there are implementation details relying on __declspec(property) support currently. When those details change, __declspec should be disabled for CUDA targets. llvm-svn: 238238
* MS ABI: Correct layout for empty recordsDavid Majnemer2014-09-301-0/+32
| | | | | | | | Empty records do not always have size equivalent to their alignment. They only do so when their alignment is at least as large as the minimum empty struct size: 1 byte in C++ and 4 bytes in C. llvm-svn: 218661
* [MS-ABI] Drop Special Layout in 64-bit mode.Warren Hunt2014-03-241-60/+60
| | | | | | | | | As of cl.exe version 18, the special layout rules for structs with alignment 16 or greater has been dropped. This patch drops the behavior from clang. This patch also updates the lit tests to reflect the change. llvm-svn: 204674
* MS ABI: Just use getTypeInfoInChars to get the field sizeReid Kleckner2014-02-251-0/+17
| | | | | | | | | | | | This was changed to use manual desugaring and multiplication in r201832 and fixed for multi-dimensional arrays in r201917. However, it breaks down in the presence of typedefs. Rather than attempting to handle all the desugaring, just go back to calling the generic type info code. This was discovered while compiling SIInstrWaits.cpp in the R600 backend. llvm-svn: 202175
* [MS-ABI] Fix MSRecordLayout to handel MultiDimensionalArraysWarren Hunt2014-02-221-1/+18
| | | | | | | | A recent change caused multi-dimensional arrays not to be handled correctly, this patch fixes that. Also, it adds a lit test for multi-dimensional arrays. llvm-svn: 201917
* 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] Quick fix layout of an array of recordsReid Kleckner2014-01-131-1/+17
| | | | | | | This fixes llvm::SmallVector, which fixes lots of TUs in the MS ABI self host. llvm-svn: 199129
* [ms-abi] Refactor Microsoft Record LayoutWarren Hunt2014-01-091-12/+12
| | | | | | | | | 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] Refactoring Non-virtual base layout in record layoutWarren Hunt2013-12-121-530/+548
| | | | | | | | | This refactor addresses bugzilla bug 18167 and simplifies the code at the same time. Also I add a test case for the bug. Also I make a non-functional change to the basic layout lit tests to make them more reliable (using CHECK-NEXT instead of CHECK). llvm-svn: 197183
* Implements 64 bit microsoft record layout and adds lit tests to cover Warren Hunt2013-10-231-1/+288
| | | | | | | | | 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
* Lit tests for Microsoft C++ record layout.Warren Hunt2013-10-141-0/+488
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