UserManual: Tweak the /Zc:dllexportInlines- docs some

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

llvm-svn: 346748
This commit is contained in:
Hans Wennborg 2018-11-13 09:05:12 +00:00
parent 9596848037
commit 7717a5cd8c
2 changed files with 10 additions and 9 deletions

View File

@ -2947,8 +2947,8 @@ Execute ``clang-cl /?`` to see a list of supported options:
/Yc<filename> Generate a pch file for all code up to and including <filename> /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> /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 /Z7 Enable CodeView debug information in object files
/Zc:dllexportInlines- Don't dllexport/import inline member functions of dllexport/import classes /Zc:dllexportInlines- Don't dllexport/dllimport inline member functions of dllexport/import classes
/Zc:dllexportInlines dllexport/import inline member functions of dllexport/import classes (default) /Zc:dllexportInlines dllexport/dllimport inline member functions of dllexport/import classes (default)
/Zc:sizedDealloc- Disable C++14 sized global deallocation functions /Zc:sizedDealloc- Disable C++14 sized global deallocation functions
/Zc:sizedDealloc Enable C++14 sized global deallocation functions /Zc:sizedDealloc Enable C++14 sized global deallocation functions
/Zc:strictStrings Treat string literals as const /Zc:strictStrings Treat string literals as const
@ -3101,10 +3101,10 @@ line.
The /Zc:dllexportInlines- Option The /Zc:dllexportInlines- Option
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This causes the class-level `dllexport` and `dllimport` attributes not to be This causes the class-level `dllexport` and `dllimport` attributes to not apply
applied to inline member functions, as they otherwise would. For example, in to inline member functions, as they otherwise would. For example, in the code
the code below `S::foo()` would normally be defined and exported by the DLL, below `S::foo()` would normally be defined and exported by the DLL, but when
but when using the ``/Zc:dllexportInlines-`` flag it is not: using the ``/Zc:dllexportInlines-`` flag it is not:
.. code-block:: c .. code-block:: c
@ -3170,7 +3170,8 @@ different instance of that variable than in the DLL:
} }
This could lead to very subtle bugs. Using ``-fvisibility-inlines-hidden`` can 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 The /fallback Option
^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^

View File

@ -336,9 +336,9 @@ def _SLASH_Yu : CLJoined<"Yu">,
def _SLASH_Y_ : CLFlag<"Y-">, def _SLASH_Y_ : CLFlag<"Y-">,
HelpText<"Disable precompiled headers, overrides /Yc and /Yu">; HelpText<"Disable precompiled headers, overrides /Yc and /Yu">;
def _SLASH_Zc_dllexportInlines : CLFlag<"Zc:dllexportInlines">, 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-">, 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">, def _SLASH_Fp : CLJoined<"Fp">,
HelpText<"Set pch filename (with /Yc and /Yu)">, MetaVarName<"<filename>">; HelpText<"Set pch filename (with /Yc and /Yu)">, MetaVarName<"<filename>">;