mclow.lists created this revision.
mclow.lists added reviewers: ldionne, EricWF, dexonsmith.

During the review of https://reviews.llvm.org/D50719, I said:

> The presence/absence of C11 features in the underlying C library does not 
> depend on what version of the C++ language we're compiling with.
>  The tests that use `TEXT_HAS_C11_XXX` should be updated to check 
> `TEST_STD_VER` instead.

This does that.
The detection of C11 features happens no matter what the language level is.
The enabling/disabling of the C++ features is done based on the language level.


https://reviews.llvm.org/D50739

Files:
  include/__config
  include/cstdlib
  test/std/language.support/support.start.term/quick_exit.pass.cpp
  test/std/language.support/support.start.term/quick_exit_check1.fail.cpp
  test/std/language.support/support.start.term/quick_exit_check2.fail.cpp
  test/support/test_macros.h


Index: test/support/test_macros.h
===================================================================
--- test/support/test_macros.h
+++ test/support/test_macros.h
@@ -124,7 +124,7 @@
 
 // Sniff out to see if the underling C library has C11 features
 // Note that at this time (July 2018), MacOS X and iOS do NOT.
-#if __ISO_C_VISIBLE >= 2011 || TEST_STD_VER >= 11
+#if __ISO_C_VISIBLE >= 2011
 #  if defined(__FreeBSD__)
 #    define TEST_HAS_C11_FEATURES
 #  elif defined(__Fuchsia__)
Index: test/std/language.support/support.start.term/quick_exit_check2.fail.cpp
===================================================================
--- test/std/language.support/support.start.term/quick_exit_check2.fail.cpp
+++ test/std/language.support/support.start.term/quick_exit_check2.fail.cpp
@@ -6,7 +6,7 @@
 // Source Licenses. See LICENSE.TXT for details.
 //
 
//===----------------------------------------------------------------------===//
-//
+// UNSUPPORTED: c++98, c++03
 
 // test that referencing quick_exit when _LIBCPP_HAS_QUICK_EXIT is not defined
 // results in a compile error.
Index: test/std/language.support/support.start.term/quick_exit_check1.fail.cpp
===================================================================
--- test/std/language.support/support.start.term/quick_exit_check1.fail.cpp
+++ test/std/language.support/support.start.term/quick_exit_check1.fail.cpp
@@ -7,6 +7,7 @@
 //
 
//===----------------------------------------------------------------------===//
 //
+// UNSUPPORTED: c++98, c++03
 
 // test that referencing at_quick_exit when _LIBCPP_HAS_QUICK_EXIT is not 
defined
 // results in a compile error.
Index: test/std/language.support/support.start.term/quick_exit.pass.cpp
===================================================================
--- test/std/language.support/support.start.term/quick_exit.pass.cpp
+++ test/std/language.support/support.start.term/quick_exit.pass.cpp
@@ -6,7 +6,7 @@
 // Source Licenses. See LICENSE.TXT for details.
 //
 
//===----------------------------------------------------------------------===//
-//
+// UNSUPPORTED: c++98, c++03
 
 // test quick_exit and at_quick_exit
 
Index: include/cstdlib
===================================================================
--- include/cstdlib
+++ include/cstdlib
@@ -151,11 +151,11 @@
 using ::wctomb;
 using ::mbstowcs;
 using ::wcstombs;
-#ifdef _LIBCPP_HAS_QUICK_EXIT
+#if !defined(_LIBCPP_CXX03_LANG) && defined(_LIBCPP_HAS_QUICK_EXIT)
 using ::at_quick_exit;
 using ::quick_exit;
 #endif
-#ifdef _LIBCPP_HAS_C11_FEATURES
+#if _LIBCPP_STD_VER > 14 && defined(_LIBCPP_HAS_C11_FEATURES)
 using ::aligned_alloc;
 #endif
 
Index: include/__config
===================================================================
--- include/__config
+++ include/__config
@@ -430,7 +430,7 @@
 #define _LIBCPP_HAS_NO_VARIABLE_TEMPLATES
 #endif
 
-#if __ISO_C_VISIBLE >= 2011 || __cplusplus >= 201103L
+#if __ISO_C_VISIBLE >= 2011
 #  if defined(__FreeBSD__)
 #    define _LIBCPP_HAS_QUICK_EXIT
 #    define _LIBCPP_HAS_C11_FEATURES


Index: test/support/test_macros.h
===================================================================
--- test/support/test_macros.h
+++ test/support/test_macros.h
@@ -124,7 +124,7 @@
 
 // Sniff out to see if the underling C library has C11 features
 // Note that at this time (July 2018), MacOS X and iOS do NOT.
-#if __ISO_C_VISIBLE >= 2011 || TEST_STD_VER >= 11
+#if __ISO_C_VISIBLE >= 2011
 #  if defined(__FreeBSD__)
 #    define TEST_HAS_C11_FEATURES
 #  elif defined(__Fuchsia__)
Index: test/std/language.support/support.start.term/quick_exit_check2.fail.cpp
===================================================================
--- test/std/language.support/support.start.term/quick_exit_check2.fail.cpp
+++ test/std/language.support/support.start.term/quick_exit_check2.fail.cpp
@@ -6,7 +6,7 @@
 // Source Licenses. See LICENSE.TXT for details.
 //
 //===----------------------------------------------------------------------===//
-//
+// UNSUPPORTED: c++98, c++03
 
 // test that referencing quick_exit when _LIBCPP_HAS_QUICK_EXIT is not defined
 // results in a compile error.
Index: test/std/language.support/support.start.term/quick_exit_check1.fail.cpp
===================================================================
--- test/std/language.support/support.start.term/quick_exit_check1.fail.cpp
+++ test/std/language.support/support.start.term/quick_exit_check1.fail.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 //
+// UNSUPPORTED: c++98, c++03
 
 // test that referencing at_quick_exit when _LIBCPP_HAS_QUICK_EXIT is not defined
 // results in a compile error.
Index: test/std/language.support/support.start.term/quick_exit.pass.cpp
===================================================================
--- test/std/language.support/support.start.term/quick_exit.pass.cpp
+++ test/std/language.support/support.start.term/quick_exit.pass.cpp
@@ -6,7 +6,7 @@
 // Source Licenses. See LICENSE.TXT for details.
 //
 //===----------------------------------------------------------------------===//
-//
+// UNSUPPORTED: c++98, c++03
 
 // test quick_exit and at_quick_exit
 
Index: include/cstdlib
===================================================================
--- include/cstdlib
+++ include/cstdlib
@@ -151,11 +151,11 @@
 using ::wctomb;
 using ::mbstowcs;
 using ::wcstombs;
-#ifdef _LIBCPP_HAS_QUICK_EXIT
+#if !defined(_LIBCPP_CXX03_LANG) && defined(_LIBCPP_HAS_QUICK_EXIT)
 using ::at_quick_exit;
 using ::quick_exit;
 #endif
-#ifdef _LIBCPP_HAS_C11_FEATURES
+#if _LIBCPP_STD_VER > 14 && defined(_LIBCPP_HAS_C11_FEATURES)
 using ::aligned_alloc;
 #endif
 
Index: include/__config
===================================================================
--- include/__config
+++ include/__config
@@ -430,7 +430,7 @@
 #define _LIBCPP_HAS_NO_VARIABLE_TEMPLATES
 #endif
 
-#if __ISO_C_VISIBLE >= 2011 || __cplusplus >= 201103L
+#if __ISO_C_VISIBLE >= 2011
 #  if defined(__FreeBSD__)
 #    define _LIBCPP_HAS_QUICK_EXIT
 #    define _LIBCPP_HAS_C11_FEATURES
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to