diff options
| author | Hans Wennborg <hans@hanshq.net> | 2014-11-03 16:09:16 +0000 |
|---|---|---|
| committer | Hans Wennborg <hans@hanshq.net> | 2014-11-03 16:09:16 +0000 |
| commit | 8313c768369c29051c6e5b9bfe25af3744fe4043 (patch) | |
| tree | dad489f2fa755b691f70e22ebf436d149957606e /clang/test/SemaCXX/dllexport.cpp | |
| parent | c98e413498a98ec8c10d50f5d52aee105a0a29a0 (diff) | |
| download | bcm5719-llvm-8313c768369c29051c6e5b9bfe25af3744fe4043.tar.gz bcm5719-llvm-8313c768369c29051c6e5b9bfe25af3744fe4043.zip | |
Don't allow dllimport/export on classes with internal linkage (PR21399)
Trying to import or export such classes doesn't make sense, and Clang
would assert trying to export vtables for them.
This is consistent with how we treat functions with internal linkage,
but it is stricter than MSVC so we may have to back down if it breaks
real code.
llvm-svn: 221160
Diffstat (limited to 'clang/test/SemaCXX/dllexport.cpp')
| -rw-r--r-- | clang/test/SemaCXX/dllexport.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/dllexport.cpp b/clang/test/SemaCXX/dllexport.cpp index e6fc91d6b94..5d002ac81e5 100644 --- a/clang/test/SemaCXX/dllexport.cpp +++ b/clang/test/SemaCXX/dllexport.cpp @@ -327,6 +327,10 @@ template<> __declspec(dllexport) inline void funcTmpl<ExplicitSpec_InlineDef_Exp // Classes //===----------------------------------------------------------------------===// +namespace { + struct __declspec(dllexport) AnonymousClass {}; // expected-error{{(anonymous namespace)::AnonymousClass' must have external linkage when declared 'dllexport'}} +} + class __declspec(dllexport) ClassDecl; class __declspec(dllexport) ClassDef {}; |

