[PATCH] D42354: Fix libcxx MSVC C++17 redefinition of 'align_val_t'
fcharlie added a comment. @compnerd Please commit this, Thanks Repository: rCXX libc++ https://reviews.llvm.org/D42354 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D42354: Fix libcxx MSVC C++17 redefinition of 'align_val_t'
fcharlie accepted this revision. fcharlie added a comment. libcxx: Fix libcxx MSVC C++17 redefinition of 'align_val_t' Differential Revision: https://reviews.llvm.org/D42354 Repository: rCXX libc++ https://reviews.llvm.org/D42354 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D42354: Fix libcxx MSVC C++17 redefinition of 'align_val_t'
fcharlie added a comment. In https://reviews.llvm.org/D42354#988656, @mclow.lists wrote: > I'm pretty sure I don't want to know what MSFT is doing putting `align_val_t` > in *that* header file. > > Now I'm wondering if those values `__zero` and `__max` are actually used. Use > grep "__zero" -Rn . There's no place to use ** __zero** and **__max**. Repository: rCXX libc++ https://reviews.llvm.org/D42354 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D42354: Fix libcxx MSVC C++17 redefinition of 'align_val_t'
fcharlie added a comment. In https://reviews.llvm.org/D42354#988656, @mclow.lists wrote: > I'm pretty sure I don't want to know what MSFT is doing putting `align_val_t` > in *that* header file. > > Now I'm wondering if those values `__zero` and `__max` are actually used. Use > grep "__zero" -Rn . There's no place to use ** __zero** and **__max**. Repository: rCXX libc++ https://reviews.llvm.org/D42354 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D42354: Fix libcxx MSVC C++17 redefinition of 'align_val_t'
fcharlie added a comment. In https://reviews.llvm.org/D42354#984067, @STL_MSFT wrote: > Seems reasonable to me. Thanks Repository: rCXX libc++ https://reviews.llvm.org/D42354 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D42354: Fix libcxx MSVC C++17 redefinition of 'align_val_t'
fcharlie updated this revision to Diff 130871. https://reviews.llvm.org/D42354 Files: include/new Index: include/new === --- include/new +++ include/new @@ -160,6 +160,7 @@ #endif // defined(_LIBCPP_BUILDING_NEW) || (_LIBCPP_STD_VER > 11) +#if !defined(_LIBCPP_ABI_MICROSOFT) || defined(_LIBCPP_NO_VCRUNTIME) #if !defined(_LIBCPP_HAS_NO_ALIGNED_ALLOCATION) || _LIBCPP_STD_VER > 14 #ifndef _LIBCPP_CXX03_LANG enum class _LIBCPP_ENUM_VIS align_val_t : size_t { }; @@ -167,6 +168,7 @@ enum align_val_t { __zero = 0, __max = (size_t)-1 }; #endif #endif +#endif } // std Index: include/new === --- include/new +++ include/new @@ -160,6 +160,7 @@ #endif // defined(_LIBCPP_BUILDING_NEW) || (_LIBCPP_STD_VER > 11) +#if !defined(_LIBCPP_ABI_MICROSOFT) || defined(_LIBCPP_NO_VCRUNTIME) #if !defined(_LIBCPP_HAS_NO_ALIGNED_ALLOCATION) || _LIBCPP_STD_VER > 14 #ifndef _LIBCPP_CXX03_LANG enum class _LIBCPP_ENUM_VIS align_val_t : size_t { }; @@ -167,6 +168,7 @@ enum align_val_t { __zero = 0, __max = (size_t)-1 }; #endif #endif +#endif } // std ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D42354: Fix libcxx MSVC C++17 redefinition of 'align_val_t'
fcharlie created this revision. Herald added a reviewer: EricWF. Herald added a subscriber: cfe-commits. When use clang-cl -std:c++17 -Iinclude\c++\v1 hello.cc c++.lib In file included from hello.cc:1: In file included from include\c++\v1\iostream:38: In file included from include\c++\v1\ios:216: In file included from include\c++\v1\__locale:15: In file included from include\c++\v1\string:477: In file included from include\c++\v1\string_view:176: In file included from include\c++\v1\__string:56: In file included from include\c++\v1\algorithm:643: In file included from include\c++\v1\memory:656: include\c++\v1\new(165,29): error: redefinition of 'align_val_t' enum class _LIBCPP_ENUM_VIS align_val_t : size_t { }; ^ C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.12.25827\include\vcruntime_new.h(43,16): note: previous definition is here enum class align_val_t : size_t {}; ^ 1 error generated. Repository: rCXX libc++ https://reviews.llvm.org/D42354 Files: include/new Index: include/new === --- include/new +++ include/new @@ -160,6 +160,9 @@ #endif // defined(_LIBCPP_BUILDING_NEW) || (_LIBCPP_STD_VER > 11) +#if defined(_LIBCPP_ABI_MICROSOFT) && defined(_HAS_ALIGNED_NEW) +/// vcruntime_new.h defined align_val_t +#else #if !defined(_LIBCPP_HAS_NO_ALIGNED_ALLOCATION) || _LIBCPP_STD_VER > 14 #ifndef _LIBCPP_CXX03_LANG enum class _LIBCPP_ENUM_VIS align_val_t : size_t { }; @@ -167,6 +170,7 @@ enum align_val_t { __zero = 0, __max = (size_t)-1 }; #endif #endif +#endif } // std Index: include/new === --- include/new +++ include/new @@ -160,6 +160,9 @@ #endif // defined(_LIBCPP_BUILDING_NEW) || (_LIBCPP_STD_VER > 11) +#if defined(_LIBCPP_ABI_MICROSOFT) && defined(_HAS_ALIGNED_NEW) +/// vcruntime_new.h defined align_val_t +#else #if !defined(_LIBCPP_HAS_NO_ALIGNED_ALLOCATION) || _LIBCPP_STD_VER > 14 #ifndef _LIBCPP_CXX03_LANG enum class _LIBCPP_ENUM_VIS align_val_t : size_t { }; @@ -167,6 +170,7 @@ enum align_val_t { __zero = 0, __max = (size_t)-1 }; #endif #endif +#endif } // std ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits