r346748 - UserManual: Tweak the /Zc:dllexportInlines- docs some

Hans Wennborg via cfe-commits cfe-commits at lists.llvm.org
Tue Nov 13 01:05:13 PST 2018


Author: hans
Date: Tue Nov 13 01:05:12 2018
New Revision: 346748

URL: http://llvm.org/viewvc/llvm-project?rev=346748&view=rev
Log:
UserManual: Tweak the /Zc:dllexportInlines- docs some

Addressing comments on https://reviews.llvm.org/D54319

Modified:
    cfe/trunk/docs/UsersManual.rst
    cfe/trunk/include/clang/Driver/CLCompatOptions.td

Modified: cfe/trunk/docs/UsersManual.rst
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/docs/UsersManual.rst?rev=346748&r1=346747&r2=346748&view=diff
==============================================================================
--- cfe/trunk/docs/UsersManual.rst (original)
+++ cfe/trunk/docs/UsersManual.rst Tue Nov 13 01:05:12 2018
@@ -2947,8 +2947,8 @@ Execute ``clang-cl /?`` to see a list of
       /Yc<filename>           Generate a pch file for all code up to and including <filename>
       /Yu<filename>           Load a pch file and use it instead of all code up to and including <filename>
       /Z7                     Enable CodeView debug information in object files
-      /Zc:dllexportInlines-   Don't dllexport/import inline member functions of dllexport/import classes
-      /Zc:dllexportInlines    dllexport/import inline member functions of dllexport/import classes (default)
+      /Zc:dllexportInlines-   Don't dllexport/dllimport inline member functions of dllexport/import classes
+      /Zc:dllexportInlines    dllexport/dllimport inline member functions of dllexport/import classes (default)
       /Zc:sizedDealloc-       Disable C++14 sized global deallocation functions
       /Zc:sizedDealloc        Enable C++14 sized global deallocation functions
       /Zc:strictStrings       Treat string literals as const
@@ -3101,10 +3101,10 @@ line.
 The /Zc:dllexportInlines- Option
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-This causes the class-level `dllexport` and `dllimport` attributes not to be
-applied to inline member functions, as they otherwise would. For example, in
-the code below `S::foo()` would normally be defined and exported by the DLL,
-but when using the ``/Zc:dllexportInlines-`` flag it is not:
+This causes the class-level `dllexport` and `dllimport` attributes to not apply
+to inline member functions, as they otherwise would. For example, in the code
+below `S::foo()` would normally be defined and exported by the DLL, but when
+using the ``/Zc:dllexportInlines-`` flag it is not:
 
 .. code-block:: c
 
@@ -3170,7 +3170,8 @@ different instance of that variable than
   }
 
 This could lead to very subtle bugs. Using ``-fvisibility-inlines-hidden`` can
-lead to the same issue.
+lead to the same issue. To avoid it in this case, make `S::foo()` or
+`internal()` non-inline, or mark them `dllimport/dllexport` explicitly.
 
 The /fallback Option
 ^^^^^^^^^^^^^^^^^^^^

Modified: cfe/trunk/include/clang/Driver/CLCompatOptions.td
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/CLCompatOptions.td?rev=346748&r1=346747&r2=346748&view=diff
==============================================================================
--- cfe/trunk/include/clang/Driver/CLCompatOptions.td (original)
+++ cfe/trunk/include/clang/Driver/CLCompatOptions.td Tue Nov 13 01:05:12 2018
@@ -336,9 +336,9 @@ def _SLASH_Yu : CLJoined<"Yu">,
 def _SLASH_Y_ : CLFlag<"Y-">,
   HelpText<"Disable precompiled headers, overrides /Yc and /Yu">;
 def _SLASH_Zc_dllexportInlines : CLFlag<"Zc:dllexportInlines">,
-  HelpText<"dllexport/import inline member functions of dllexport/import classes (default)">;
+  HelpText<"dllexport/dllimport inline member functions of dllexport/import classes (default)">;
 def _SLASH_Zc_dllexportInlines_ : CLFlag<"Zc:dllexportInlines-">,
-  HelpText<"Don't dllexport/import inline member functions of dllexport/import classes">;
+  HelpText<"Don't dllexport/dllimport inline member functions of dllexport/import classes">;
 def _SLASH_Fp : CLJoined<"Fp">,
   HelpText<"Set pch filename (with /Yc and /Yu)">, MetaVarName<"<filename>">;
 




More information about the cfe-commits mailing list