[PATCH] D40181: [libcxx] Allow to set locale on Windows.

Alexey Pavlov via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed May 30 00:13:26 PDT 2018


Alexpux added a comment.
Herald added subscribers: llvm-commits, christof.

I'm not be able to build libcxx with 64-bit mingw-w64 due to this commit.
Have error like:

  [ 10%] Building CXX object projects/libcxx/lib/CMakeFiles/cxx_objects.dir/__/src/algorithm.cpp.obj
  In file included from C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/ctype.h:39:0,
                   from C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/cctype:39,
                   from C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/cwctype:54,
                   from C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/cwchar:107,
                   from C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/string:481,
                   from C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/random:1645,
                   from C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/src/algorithm.cpp:11:
  C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/locale: In static member function 'static void std::__1::__num_put<_CharT>::__widen_and_group_float(char*, char*, char*, _CharT*, _CharT*&, _CharT*&, const std::__1::locale&)':
  C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/support/win32/locale_win32.h:150:20: error: ambiguous overload for 'operator!=' (operand types are 'locale_t' and 'long long int')
   #define isxdigit_l _isxdigit_l
                      ^
  C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/locale:1198:18: note: in expansion of macro 'isxdigit_l'
               if (!isxdigit_l(*__ns, _LIBCPP_GET_C_LOCALE))
                    ^~~~~~~~~~
  C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/support/win32/locale_win32.h:150:20: note: candidate: operator!=(int, long long int) <built-in>
   #define isxdigit_l _isxdigit_l
                      ^
  C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/locale:1198:18: note: in expansion of macro 'isxdigit_l'
               if (!isxdigit_l(*__ns, _LIBCPP_GET_C_LOCALE))
                    ^~~~~~~~~~
  C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/support/win32/locale_win32.h:150:20: note: candidate: operator!=(_locale_t {aka localeinfo_struct*}, _locale_t {aka localeinfo_struct*}) <built-in>
   #define isxdigit_l _isxdigit_l
                      ^
  C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/locale:1198:18: note: in expansion of macro 'isxdigit_l'
               if (!isxdigit_l(*__ns, _LIBCPP_GET_C_LOCALE))
                    ^~~~~~~~~~
  In file included from C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/__locale:23:0,
                   from C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/ios:216,
                   from C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/ostream:138,
                   from C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/istream:163,
                   from C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/random:1646,
                   from C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/src/algorithm.cpp:11:
  C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/support/win32/locale_win32.h:73:17: note: candidate: bool operator!=(int, const locale_t&)
       friend bool operator!=(int __left, const locale_t& __right) {
                   ^~~~~~~~
  C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/support/win32/locale_win32.h:69:17: note: candidate: bool operator!=(const locale_t&, std::nullptr_t)
       friend bool operator!=(const locale_t& __left, std::nullptr_t __right) {
                   ^~~~~~~~
  C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/support/win32/locale_win32.h:65:17: note: candidate: bool operator!=(const locale_t&, int)
       friend bool operator!=(const locale_t& __left, int __right) {
                   ^~~~~~~~
  C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/support/win32/locale_win32.h:61:17: note: candidate: bool operator!=(const locale_t&, const locale_t&)
       friend bool operator!=(const locale_t& __left, const locale_t& __right) {
                   ^~~~~~~~
  In file included from C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/ctype.h:39:0,
                   from C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/cctype:39,
                   from C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/cwctype:54,
                   from C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/cwchar:107,
                   from C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/string:481,
                   from C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/random:1645,
                   from C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/src/algorithm.cpp:11:
  C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/support/win32/locale_win32.h:149:19: error: ambiguous overload for 'operator!=' (operand types are 'locale_t' and 'long long int')
   #define isdigit_l _isdigit_l
                     ^
  C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/locale:1204:18: note: in expansion of macro 'isdigit_l'
               if (!isdigit_l(*__ns, _LIBCPP_GET_C_LOCALE))
                    ^~~~~~~~~
  C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/support/win32/locale_win32.h:149:19: note: candidate: operator!=(int, long long int) <built-in>
   #define isdigit_l _isdigit_l
                     ^
  C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/locale:1204:18: note: in expansion of macro 'isdigit_l'
               if (!isdigit_l(*__ns, _LIBCPP_GET_C_LOCALE))
                    ^~~~~~~~~
  C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/support/win32/locale_win32.h:149:19: note: candidate: operator!=(_locale_t {aka localeinfo_struct*}, _locale_t {aka localeinfo_struct*}) <built-in>
   #define isdigit_l _isdigit_l
                     ^
  C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/locale:1204:18: note: in expansion of macro 'isdigit_l'
               if (!isdigit_l(*__ns, _LIBCPP_GET_C_LOCALE))
                    ^~~~~~~~~
  In file included from C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/__locale:23:0,
                   from C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/ios:216,
                   from C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/ostream:138,
                   from C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/istream:163,
                   from C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/random:1646,
                   from C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/src/algorithm.cpp:11:
  C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/support/win32/locale_win32.h:73:17: note: candidate: bool operator!=(int, const locale_t&)
       friend bool operator!=(int __left, const locale_t& __right) {
                   ^~~~~~~~
  C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/support/win32/locale_win32.h:69:17: note: candidate: bool operator!=(const locale_t&, std::nullptr_t)
       friend bool operator!=(const locale_t& __left, std::nullptr_t __right) {
                   ^~~~~~~~
  C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/support/win32/locale_win32.h:65:17: note: candidate: bool operator!=(const locale_t&, int)
       friend bool operator!=(const locale_t& __left, int __right) {
                   ^~~~~~~~
  C:/repo/mingw-w64-clang/src/llvm-6.0.0.src/projects/libcxx/include/support/win32/locale_win32.h:61:17: note: candidate: bool operator!=(const locale_t&, const locale_t&)
       friend bool operator!=(const locale_t& __left, const locale_t& __right) {
                   ^~~~~~~~
  make[2]: *** [projects/libcxx/lib/CMakeFiles/cxx_objects.dir/build.make:63: projects/libcxx/lib/CMakeFiles/cxx_objects.dir/__/src/algorithm.cpp.obj] Ошибка 1
  make[1]: *** [CMakeFiles/Makefile2:11083: projects/libcxx/lib/CMakeFiles/cxx_objects.dir/all] Ошибка 2


Repository:
  rL LLVM

https://reviews.llvm.org/D40181





More information about the cfe-commits mailing list