cstdlib (at_quick_exit, quick_exit): Do not declare.
authorPaolo Carlini <paolo.carlini@oracle.com>
Mon, 11 Feb 2013 23:42:43 +0000 (23:42 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Mon, 11 Feb 2013 23:42:43 +0000 (23:42 +0000)
2013-02-11  Paolo Carlini  <paolo.carlini@oracle.com>

* include/c_std/cstdlib (at_quick_exit, quick_exit): Do not declare.
* include/c_global/cstdlib (at_quick_exit, quick_exit): Declare only
in C++11 mode and if available in the underlying C library.
* testsuite/18_support/quick_exit/quick_exit.cc: Compile with
-std=gnu++11; check _GLIBCXX_HAVE_AT_QUICK_EXIT and
_GLIBCXX_HAVE_QUICK_EXIT.

From-SVN: r195961

libstdc++-v3/ChangeLog
libstdc++-v3/include/c_global/cstdlib
libstdc++-v3/include/c_std/cstdlib
libstdc++-v3/testsuite/18_support/quick_exit/quick_exit.cc

index 38f41afbf4737cf13253e44aa9b2674b17860e72..096fd68fd13e5b41d328c604a6025caaf37c99a8 100644 (file)
@@ -1,7 +1,16 @@
+2013-02-11  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * include/c_std/cstdlib (at_quick_exit, quick_exit): Do not declare.
+       * include/c_global/cstdlib (at_quick_exit, quick_exit): Declare only
+       in C++11 mode and if available in the underlying C library.
+       * testsuite/18_support/quick_exit/quick_exit.cc: Compile with
+       -std=gnu++11; check _GLIBCXX_HAVE_AT_QUICK_EXIT and
+       _GLIBCXX_HAVE_QUICK_EXIT.
+
 2013-02-11  Benjamin Kosnik  <bkoz@redhat.com>
 
        * doc/html/*: Regenerate.
-       
+
 2013-02-11  Jason Merrill  <jason@redhat.com>
 
        * linkage.m4 (GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE): New.
index 0eb0129967f83b8017d3739c0f72d9b83a82b8e8..9180036e634aa75de3d27b1fc6b5b372ea83cfbf 100644 (file)
@@ -57,8 +57,14 @@ namespace std
   extern "C" void abort(void) throw () _GLIBCXX_NORETURN;
   extern "C" int atexit(void (*)()) throw ();
   extern "C" void exit(int) throw () _GLIBCXX_NORETURN;
+#if __cplusplus >= 201103L
+# ifdef _GLIBCXX_HAVE_AT_QUICK_EXIT
   extern "C" int at_quick_exit(void (*)()) throw ();
+# endif
+# ifdef _GLIBCXX_HAVE_QUICK_EXIT
   extern "C" void quick_exit(int) throw() _GLIBCXX_NORETURN;
+# endif
+#endif
 } // namespace std
 
 #else
@@ -69,7 +75,11 @@ namespace std
 #undef abort
 #undef abs
 #undef atexit
-#undef at_quick_exit
+#if __cplusplus >= 201103L
+# ifdef _GLIBCXX_HAVE_AT_QUICK_EXIT
+#  undef at_quick_exit
+# endif
+#endif
 #undef atof
 #undef atoi
 #undef atol
@@ -86,7 +96,11 @@ namespace std
 #undef mbstowcs
 #undef mbtowc
 #undef qsort
-#undef quick_exit
+#if __cplusplus >= 201103L
+# ifdef _GLIBCXX_HAVE_QUICK_EXIT
+#  undef quick_exit
+# endif
+#endif
 #undef rand
 #undef realloc
 #undef srand
@@ -107,8 +121,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   using ::abort;
   using ::abs;
   using ::atexit;
-#ifdef _GLIBCXX_HAVE_AT_QUICK_EXIT
+#if __cplusplus >= 201103L
+# ifdef _GLIBCXX_HAVE_AT_QUICK_EXIT
   using ::at_quick_exit;
+# endif
 #endif
   using ::atof;
   using ::atoi;
@@ -128,8 +144,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   using ::mbtowc;
 #endif // _GLIBCXX_HAVE_MBSTATE_T
   using ::qsort;
-#ifdef _GLIBCXX_HAVE_QUICK_EXIT
+#if __cplusplus >= 201103L
+# ifdef _GLIBCXX_HAVE_QUICK_EXIT
   using ::quick_exit;
+# endif
 #endif
   using ::rand;
   using ::realloc;
index 9d2f51ede28e21d31a5887f13e53f2ee7c782e3f..224fccfd9c508d5a72c3d85d35276f733b28732c 100644 (file)
@@ -57,8 +57,6 @@ namespace std
   extern "C" void abort(void) throw () _GLIBCXX_NORETURN;
   extern "C" int atexit(void (*)()) throw ();
   extern "C" void exit(int) throw () _GLIBCXX_NORETURN;
-  extern "C" int at_quick_exit(void (*)()) throw ();
-  extern "C" void quick_exit(int) throw() _GLIBCXX_NORETURN;
 } // namespace
 
 #else
@@ -69,7 +67,6 @@ namespace std
 #undef abort
 #undef abs
 #undef atexit
-#undef at_quick_exit
 #undef atof
 #undef atoi
 #undef atol
@@ -86,7 +83,6 @@ namespace std
 #undef mbstowcs
 #undef mbtowc
 #undef qsort
-#undef quick_exit
 #undef rand
 #undef realloc
 #undef srand
@@ -107,9 +103,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   using ::abort;
   using ::abs;
   using ::atexit;
-#ifdef _GLIBCXX_HAVE_AT_QUICK_EXIT
-  using ::at_quick_exit;
-#endif
   using ::atof;
   using ::atoi;
   using ::atol;
@@ -128,9 +121,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   using ::mbtowc;
 #endif // _GLIBCXX_HAVE_MBSTATE_T
   using ::qsort;
-#ifdef _GLIBCXX_HAVE_QUICK_EXIT
-  using ::quick_exit;
-#endif
   using ::rand;
   using ::realloc;
   using ::srand;
index 54ee41e0643c36f0212eb3512e91075a058219d6..8e55890bacce2b2bdf60b0685c0daef3332a0e7b 100644 (file)
@@ -1,5 +1,7 @@
-// 2013-02-11 Jason Merrill
-
+// { dg-options "-std=gnu++11" }
+//
+// 2013-02-11  Jason  Merrill
+//
 // Copyright (C) 2013 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -33,7 +35,9 @@ void wrong_handler()
 
 int main()
 {
+#if defined(_GLIBCXX_HAVE_AT_QUICK_EXIT) && defined(_GLIBCXX_HAVE_QUICK_EXIT)
   std::at_quick_exit (handler);
   std::atexit (wrong_handler);
   std::quick_exit (1);
+#endif
 }