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
Showing
- include/clang/Basic/Attr.td 2 additions, 2 deletionsinclude/clang/Basic/Attr.td
- lib/CodeGen/CGCXX.cpp 4 additions, 0 deletionslib/CodeGen/CGCXX.cpp
- lib/CodeGen/CGClass.cpp 2 additions, 2 deletionslib/CodeGen/CGClass.cpp
- lib/CodeGen/CGVTables.cpp 16 additions, 3 deletionslib/CodeGen/CGVTables.cpp
- lib/CodeGen/MicrosoftCXXABI.cpp 14 additions, 0 deletionslib/CodeGen/MicrosoftCXXABI.cpp
- lib/Sema/SemaDeclCXX.cpp 57 additions, 0 deletionslib/Sema/SemaDeclCXX.cpp
- lib/Sema/SemaExpr.cpp 1 addition, 1 deletionlib/Sema/SemaExpr.cpp
- test/CodeGenCXX/dllexport.cpp 90 additions, 0 deletionstest/CodeGenCXX/dllexport.cpp
- test/CodeGenCXX/dllimport.cpp 74 additions, 8 deletionstest/CodeGenCXX/dllimport.cpp
- test/SemaCXX/dllexport.cpp 18 additions, 8 deletionstest/SemaCXX/dllexport.cpp
- test/SemaCXX/dllimport.cpp 18 additions, 9 deletionstest/SemaCXX/dllimport.cpp
Loading
Please register or sign in to comment