[all-commits] [llvm/llvm-project] c793f6: [libcxx] Don't use dllimport for a static member i...

Martin Storsjö via All-commits all-commits at lists.llvm.org
Wed Mar 3 23:11:00 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: c793f68d9b62e9813f17d438be5edd23f348b4b9
      https://github.com/llvm/llvm-project/commit/c793f68d9b62e9813f17d438be5edd23f348b4b9
  Author: Martin Storsjö <martin at martin.st>
  Date:   2021-03-04 (Thu, 04 Mar 2021)

  Changed paths:
    M libcxx/include/__config
    M libcxx/include/string

  Log Message:
  -----------
  [libcxx] Don't use dllimport for a static member in a template

This fixes clang warnings (that are treated as errors when running
the test suite):

libcxx/include/string:4409:59: error: definition of dllimport static field [-Werror,-Wdllimport-static-field-def]
               basic_string<_CharT, _Traits, _Allocator>::npos;

The warning is normally not visible as long as the libc++ headers
are treated as system headers.

The same construct is always an error in MSVC.

(One _LIBCPP_FUNC_VIS was added in
2d8f23f571635c1fb983b40c4c2548716a5b65b6, which broke DLL builds.
59919c4d6b6370da7133bbca0d31844e21646bb1 fixed this by adding another
_LIBCPP_FUNC_VIS on the declaration for consistency, but the underlying
issue remained, that one can't use dllimport here.)

Differential Revision: https://reviews.llvm.org/D97168




More information about the All-commits mailing list