llvm-project/clang/test
Hans Wennborg 9bea9cc73b MS ABI: Propagate class-level DLL attributes to class template specialization bases (PR11170)
Consider the following code:

  template <typename T> class Base {};
  class __declspec(dllexport) class Derived : public Base<int> {}

When the base of an exported or imported class is a class template
specialization, MSVC will propagate the dll attribute to the base.
In the example code, Base<int> becomes a dllexported class.

This commit makes Clang do the proopagation when the base hasn't been
instantiated yet, and warns about it being unsupported otherwise.
This is different from MSVC, which allows changing a specialization
back and forth between dllimport and dllexport and seems to let the
last one win. Changing the dll attribute after instantiation would be
hard for us, and doesn't seem to come up in practice, so I think this
is a reasonable limitation to have.

MinGW doesn't do this kind of propagation.

Differential Revision: http://reviews.llvm.org/D4264

llvm-svn: 211725
2014-06-25 18:25:57 +00:00
..
ARCMT [analyzer] Check for NULL passed to CFAutorelease. 2014-06-21 23:50:40 +00:00
ASTMerge Ignore test Inputs globally and remove redundant lit.local.cfg files 2013-11-15 13:37:49 +00:00
Analysis [analyzer] Check for NULL passed to CFAutorelease. 2014-06-21 23:50:40 +00:00
CXX Add missing "non-constant" diagnostic for a member call on a temporary of 2014-06-11 19:53:12 +00:00
CodeCompletion When completing Objective-C instance method invocations, perform a contextual conversion to an Objective-C pointer type of the target expression if needed. This fixes code completion of method invocations where the target is a smart pointer that has an explicit conversion operator to an Objective-C type. 2014-02-28 19:07:22 +00:00
CodeGen Rename loop unrolling and loop vectorizer metadata to have a common prefix. 2014-06-25 15:42:16 +00:00
CodeGenCUDA Move all CUDA testing inputs to Inputs/ subdirectory inside the tests. 2014-04-28 22:21:28 +00:00
CodeGenCXX MS ABI: Propagate class-level DLL attributes to class template specialization bases (PR11170) 2014-06-25 18:25:57 +00:00
CodeGenObjC Improve robustness of tests for module flags metadata 2014-06-19 16:10:21 +00:00
CodeGenObjCXX Improve robustness of tests for module flags metadata 2014-06-19 16:10:21 +00:00
CodeGenOpenCL Add R600 builtin codegen. 2014-06-24 20:45:01 +00:00
Coverage Fix crash caused by unnamed union or struct when doing ast-print 2014-06-20 17:08:28 +00:00
Driver Align with new GCC options for x86 Android 2014-06-25 12:15:36 +00:00
FixIt Objective-C. When we use @selector(save:), etc. there may be more 2014-06-24 17:02:19 +00:00
Format clang-format: Introduce style with spaces on both sides of */&. 2014-06-17 12:40:34 +00:00
Frontend Simplify optimization-remark.c test following r211610 2014-06-24 19:23:10 +00:00
Headers Recommit r209532 with -ffreestanding. 2014-05-23 22:12:01 +00:00
Index [test] Add '-target' option to fix bot failure. 2014-06-21 18:28:44 +00:00
Integration Split out header integration tests 2014-05-04 13:00:32 +00:00
Layout Fix warning in ms-x86-vtordisp test case 2014-04-14 23:49:17 +00:00
Lexer Make MS i128 suffix test from r211446 more robust 2014-06-21 23:32:05 +00:00
Misc Fix/Improve SourceRange of explicitly defaulted members 2014-06-20 08:44:22 +00:00
Modules Disable Modules/dependency-dump-dependent-module.m on win32 for now. 2014-06-20 15:04:25 +00:00
OpenMP Rename loop unrolling and loop vectorizer metadata to have a common prefix. 2014-06-25 15:42:16 +00:00
PCH Add loop unroll pragma support 2014-06-11 17:56:26 +00:00
Parser Fix parsing nested __if_exists blocks 2014-06-25 00:28:35 +00:00
Preprocessor Implement predefined stdint macros 2014-06-25 01:31:33 +00:00
Profile InstrProf: Set profile data to visibility hidden 2014-05-16 01:24:00 +00:00
Rewriter Don't suppress warning about dllimport on typedefs etc. in MicrosoftExt mode 2014-05-23 20:16:41 +00:00
Sema Fix treatment of types defined in function prototype 2014-06-25 17:09:41 +00:00
SemaCUDA Move all CUDA testing inputs to Inputs/ subdirectory inside the tests. 2014-04-28 22:21:28 +00:00
SemaCXX MS ABI: Propagate class-level DLL attributes to class template specialization bases (PR11170) 2014-06-25 18:25:57 +00:00
SemaObjC Objective-C. When we use @selector(save:), etc. there may be more 2014-06-24 17:02:19 +00:00
SemaObjCXX Fix assertion hit or bogus compiler error in cases when instantiating ObjC property accesses used with overloaded binary operators. 2014-06-19 14:45:16 +00:00
SemaOpenCL [OpenCL] Reject reqd_work_group_size(X, Y, Z) where X, Y or Z == 0. 2014-05-19 14:41:38 +00:00
SemaTemplate Fix/Improve SourceRange of explicitly defaulted members 2014-06-20 08:44:22 +00:00
TableGen
Tooling PR19601: testcase improvement 2014-05-01 19:36:13 +00:00
Unit libclang: fix a bug in processing invalid arguments, introduced in r201249 2014-02-18 15:20:02 +00:00
VFS Stopgap fix for finding module for a file mapped in the VFS 2014-05-23 18:15:47 +00:00
.clang-format Add .clang-format without column limit to subdirectory tests/. 2013-11-08 06:45:35 +00:00
CMakeLists.txt Don't add examples to the check-clang dependencies unless requested 2014-06-01 02:02:23 +00:00
Makefile Reverting because reverting r200145. 2014-01-27 22:57:33 +00:00
TestRunner.sh
cxx-sections.data
lit.cfg Add detection of OS X relocatable SDK to compiler-rt as a lit.util function 2014-06-10 14:22:00 +00:00
lit.site.cfg.in test: Fix feature test for "native" in lit.cfg 2014-03-11 04:34:17 +00:00
make_test_dirs.pl