[libcxx] r324853 - Fix libcxx MSVC C++17 redefinition of 'align_val_t'
Eric Fiselier via cfe-commits
cfe-commits at lists.llvm.org
Sun Feb 11 14:00:19 PST 2018
Author: ericwf
Date: Sun Feb 11 14:00:19 2018
New Revision: 324853
URL: http://llvm.org/viewvc/llvm-project?rev=324853&view=rev
Log:
Fix libcxx MSVC C++17 redefinition of 'align_val_t'
Patch from charlieio at outlook.com
Reviewed as https://reviews.llvm.org/D42354
When the following command is used:
> clang-cl -std:c++17 -Iinclude\c++\v1 hello.cc c++.lib
An error occurred:
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.
vcruntime_new.h has defined align_val_t, libcxx need hide align_val_t.
This patch fixes that error.
Modified:
libcxx/trunk/include/new
Modified: libcxx/trunk/include/new
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/new?rev=324853&r1=324852&r2=324853&view=diff
==============================================================================
--- libcxx/trunk/include/new (original)
+++ libcxx/trunk/include/new Sun Feb 11 14:00:19 2018
@@ -160,6 +160,7 @@ public:
#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 class _LIBCPP_ENUM_VIS align_val_t
enum align_val_t { __zero = 0, __max = (size_t)-1 };
#endif
#endif
+#endif
} // std
More information about the cfe-commits
mailing list