summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/windows-itanium-dllexport.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Revert "[CodeGen] Propagate dllexport to thunks"Reid Kleckner2017-06-301-9/+0
| | | | | | This reverts r306770, it causes LNK4102 warnings in MSVC builds. llvm-svn: 306835
* [CodeGen] Propagate dllexport to thunksShoaib Meenai2017-06-301-0/+9
| | | | | | | | | | | | | Under Windows Itanium, we need to export virtual and non-virtual thunks if the functions being thunked are exported. These thunks would previously inherit their dllexport attribute from the declaration, but r298330 changed declarations to not have dllexport attributes. We therefore need to add the dllexport attribute to the definition ourselves now. Differential Revision: https://reviews.llvm.org/D34850 llvm-svn: 306770
* [Sema] Use MSVC inner class behavior on ItaniumShoaib Meenai2017-04-201-0/+25
| | | | | | | | | | | | | | Windows Itanium aims to use MSVC export and import semantics. Inner class members shouldn't be exported on a dllexport explicit instantiation definition of the outer class, and they shouldn't be imported on a dllimport explicit instantiation declaration of the outer class (instead a local copy should be emitted). We were doing the first but not the second, and this mismatch can lead to link errors. Fix the behavior and add tests for both. Differential Revision: https://reviews.llvm.org/D32213 llvm-svn: 300804
* [Sema] Respect DLL attributes more faithfullyShoaib Meenai2016-12-051-0/+5
| | | | | | | | | | | On MSVC, if an implicit instantiation already exists and an explicit instantiation definition with a DLL attribute is created, the DLL attribute still takes effect. Make clang match this behavior for exporting. Differential Revision: https://reviews.llvm.org/D26657 llvm-svn: 288682
* [Sema] Use MS ABI behavior for dllexport in ItaniumShoaib Meenai2016-11-091-0/+16
| | | | | | | | | | Similar to r284288, make the Itanium ABI follow MS ABI dllexport semantics in the case of an explicit instantiation declaration followed by a dllexport explicit instantiation definition. Differential Revision: https://reviews.llvm.org/D26471 llvm-svn: 286419
* Sema: honour dllexport in itanium more faithfullySaleem Abdulrasool2016-10-141-0/+9
Although the itanium environment uses the itanium layout for C++, treat the dllexport semantics more similarly to the MSVC specification. This preserves the existing behaviour for the use of the itanium ABI on non-windows-itanium environments. Export the inline definitions too. llvm-svn: 284288
OpenPOWER on IntegriCloud