]> granicus.if.org Git - clang/commit
Start adding support for dllimport/dllexport on classes (PR11170)
authorHans Wennborg <hans@hanshq.net>
Fri, 30 May 2014 16:59:42 +0000 (16:59 +0000)
committerHans Wennborg <hans@hanshq.net>
Fri, 30 May 2014 16:59:42 +0000 (16:59 +0000)
commit6ecc88615e99eaac5bfeb28207416e93118bbfa7
treef3459218160cf8abc5e33cb4b6739ad0db0a57d1
parentf6da0fd888382d274bbb0bfceab4724c701b4922
Start adding support for dllimport/dllexport on classes (PR11170)

This implements the central part of support for dllimport/dllexport on
classes: allowing the attribute on class declarations, inheriting it
to class members, and forcing emission of exported members. It's based
on Nico Rieck's patch from http://reviews.llvm.org/D1099.

This patch doesn't propagate dllexport to bases that are template
specializations, which is an interesting problem. It also doesn't
look at the rules when redeclaring classes with different attributes,
I'd like to do that separately.

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209908 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Basic/Attr.td
lib/CodeGen/CGCXX.cpp
lib/CodeGen/CGClass.cpp
lib/CodeGen/CGVTables.cpp
lib/CodeGen/MicrosoftCXXABI.cpp
lib/Sema/SemaDeclCXX.cpp
lib/Sema/SemaExpr.cpp
test/CodeGenCXX/dllexport.cpp
test/CodeGenCXX/dllimport.cpp
test/SemaCXX/dllexport.cpp
test/SemaCXX/dllimport.cpp