[PATCH] D42354: Fix libcxx MSVC C++17 redefinition of 'align_val_t'

2018-01-28 Thread Force.Charlie-I via Phabricator via cfe-commits
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'

2018-01-28 Thread Force.Charlie-I via Phabricator via cfe-commits
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'

2018-01-25 Thread Force.Charlie-I via Phabricator via cfe-commits
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'

2018-01-25 Thread Force.Charlie-I via Phabricator via cfe-commits
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'

2018-01-22 Thread Force.Charlie-I via Phabricator via cfe-commits
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'

2018-01-22 Thread Force.Charlie-I via Phabricator via cfe-commits
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'

2018-01-21 Thread Force.Charlie-I via Phabricator via cfe-commits
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