[PATCH] D51340: Add /Zc:DllexportInlines option to clang-cl
Takuto Ikuta via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Sep 6 23:05:15 PDT 2018
takuto.ikuta marked 4 inline comments as done.
takuto.ikuta added inline comments.
================
Comment at: clang/include/clang/Basic/LangOptions.def:117
LANGOPT(Digraphs , 1, 0, "digraphs")
+LANGOPT(DllexportInlines , 1, 1, "If dllexport a class should dllexport implicit inline methods in the Microsoft ABI")
BENIGN_LANGOPT(HexFloats , 1, C99, "C99 hexadecimal float constants")
----------------
hans wrote:
> Same comment about "implicit" here as above.
>
> And is the "In the MS ABI" part of the comment important? Does the flag change depending on ABI?
>
>
> And is the "In the MS ABI" part of the comment important? Does the flag change depending on ABI?
Currently it works only for Microsoft ABI.
In this patch, I want to focus only on Microsoft ABI.
================
Comment at: clang/include/clang/Basic/LangOptions.h:217
+ /// If set, dllexported classes dllexport their implicit inline methods.
+ bool DllexportInlines = true;
----------------
hans wrote:
> not sure what you mean by implicit here.. this applies to all inline defined member functions.
Dropped.
================
Comment at: clang/lib/Sema/SemaDeclCXX.cpp:5542
+ // or checkClassLevelDLLAttribute?
+ if (MD->isInlined() && getDLLAttr(Member)) {
+ const Stmt* Body = nullptr;
----------------
hans wrote:
> Hmm, yes I think the intention was to not put the attribute on the members so I'm not sure why this is needed?
> Hmm, yes I think the intention was to not put the attribute on the members so I'm not sure why this is needed?
I changed the code around here from dropping DLL attribute to warning static local variable.
================
Comment at: clang/lib/Sema/SemaDeclCXX.cpp:5556
+ Body && !Checker.Visit(Body)) {
+ MD->dropAttr<DLLExportAttr>();
+ }
----------------
takuto.ikuta wrote:
> I noticed that this does not work correctly yet.
> Occasionally, some functions are not inlined but not exported, and those cannot be linked.
I gave up to support local static variable.
https://reviews.llvm.org/D51340
More information about the cfe-commits
mailing list