Fix libcxx MSVC C++17 redefinition of 'align_val_t'
authorEric Fiselier <eric@efcs.ca>
Sun, 11 Feb 2018 22:00:19 +0000 (22:00 +0000)
committerEric Fiselier <eric@efcs.ca>
Sun, 11 Feb 2018 22:00:19 +0000 (22:00 +0000)
commit2328c589f1b29804a246974f24cbaf7d7c1a55bd
treec5f074ff7e31a7aac9b125e0cd4ceedfe691cc2e
parent6808a5924426fe4a8e6b60e8dcfc357d70e0ca1f
Fix libcxx MSVC C++17 redefinition of 'align_val_t'

Patch from  charlieio@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.

llvm-svn: 324853
libcxx/include/new