From 7717a5cd8c97f20ef8c0bea0493edb309987420b Mon Sep 17 00:00:00 2001 From: Hans Wennborg Date: Tue, 13 Nov 2018 09:05:12 +0000 Subject: UserManual: Tweak the /Zc:dllexportInlines- docs some Addressing comments on https://reviews.llvm.org/D54319 llvm-svn: 346748 --- clang/docs/UsersManual.rst | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'clang/docs') diff --git a/clang/docs/UsersManual.rst b/clang/docs/UsersManual.rst index a7f2f8145e87..9317815efca6 100644 --- a/clang/docs/UsersManual.rst +++ b/clang/docs/UsersManual.rst @@ -2947,8 +2947,8 @@ Execute ``clang-cl /?`` to see a list of supported options: /Yc Generate a pch file for all code up to and including /Yu Load a pch file and use it instead of all code up to and including /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 in the DLL: } 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 ^^^^^^^^^^^^^^^^^^^^ -- cgit v1.2.3