diff options
author | Hans Wennborg <hans@hanshq.net> | 2015-04-22 04:05:17 +0000 |
---|---|---|
committer | Hans Wennborg <hans@hanshq.net> | 2015-04-22 04:05:17 +0000 |
commit | 287231cb7a89ed7da152aef3ea86f893b62f6e59 (patch) | |
tree | 8898b4f88d1d55567e88fbc197fae624122cc3ff /clang/lib/Sema/SemaDeclCXX.cpp | |
parent | 38267349ee0b9cee9e00398ede647f60841b49ff (diff) | |
download | bcm5719-llvm-287231cb7a89ed7da152aef3ea86f893b62f6e59.tar.gz bcm5719-llvm-287231cb7a89ed7da152aef3ea86f893b62f6e59.zip |
Don't dllimport/export class members with internal linkage (PR23308)
For example, a function taking a parameter with internal linkage will
itself have internal linkage since it cannot be called outside the
translation unit.
Differential Revision: http://reviews.llvm.org/D9182
llvm-svn: 235471
Diffstat (limited to 'clang/lib/Sema/SemaDeclCXX.cpp')
-rw-r--r-- | clang/lib/Sema/SemaDeclCXX.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp index b0e6acaedb9..b06b509de1e 100644 --- a/clang/lib/Sema/SemaDeclCXX.cpp +++ b/clang/lib/Sema/SemaDeclCXX.cpp @@ -4804,6 +4804,9 @@ static void checkDLLAttribute(Sema &S, CXXRecordDecl *Class) { } } + if (!cast<NamedDecl>(Member)->isExternallyVisible()) + continue; + if (!getDLLAttr(Member)) { auto *NewAttr = cast<InheritableAttr>(ClassAttr->clone(S.getASTContext())); |