Message ID | 20170920163526.GA30715@redhat.com |
---|---|
State | New |
Headers | show |
Series | PR libstdc++/81469 deprecate std::uncaught_exception for C++17 | expand |
Hi! On Wed, Sep 20, 2017 at 05:35:26PM +0100, Jonathan Wakely wrote: > C++17 deprecates uncaught_exception in favour of uncaught_exceptions, > so this adds the attribute. > > PR libstdc++/81469 > * libsupc++/exception (uncaught_exception): Deprecate for C++17. > * testsuite/18_support/exception_ptr/62258.cc: Add -Wno-deprecated. > * testsuite/18_support/uncaught_exception/14026.cc: Likewise. > > Tested powerpc64le-linux, committed to trunk. This broke a couple of tests with make check-c++-all, the following patch should fix that. Regtested on x86_64-linux and i686-linux, including make check-c++-all, ok for trunk? 2017-09-28 Jakub Jelinek <jakub@redhat.com> * g++.dg/eh/uncaught1.C: Add -Wno-deprecated for c++17. * g++.dg/eh/uncaught2.C: Likewise. * g++.dg/eh/uncaught3.C: Likewise. * g++.dg/eh/uncaught4.C: Likewise. * g++.old-deja/g++.mike/eh48.C: Likewise. --- gcc/testsuite/g++.dg/eh/uncaught1.C.jj 2014-01-28 14:03:44.000000000 +0100 +++ gcc/testsuite/g++.dg/eh/uncaught1.C 2017-09-28 14:33:08.758343406 +0200 @@ -1,6 +1,7 @@ // PR libstdc++/10606 // { dg-do run } // { dg-options "-fuse-cxa-get-exception-ptr" { target powerpc*-*-darwin* } } +// { dg-additional-options "-Wno-deprecated" { target c++17 } } #include <exception> #include <cstdlib> --- gcc/testsuite/g++.dg/eh/uncaught2.C.jj 2008-09-05 12:55:05.000000000 +0200 +++ gcc/testsuite/g++.dg/eh/uncaught2.C 2017-09-28 14:33:16.761250186 +0200 @@ -1,6 +1,7 @@ // { dg-do compile } // { dg-final { scan-assembler-not "__cxa_get_exception" } } // { dg-options "-fno-use-cxa-get-exception-ptr" } +// { dg-additional-options "-Wno-deprecated" { target c++17 } } #include <exception> #include <cstdlib> --- gcc/testsuite/g++.dg/eh/uncaught3.C.jj 2008-09-05 12:55:05.000000000 +0200 +++ gcc/testsuite/g++.dg/eh/uncaught3.C 2017-09-28 14:33:23.180175417 +0200 @@ -1,6 +1,7 @@ // { dg-do compile { target powerpc*-*-darwin* } } // { dg-final { scan-assembler-not "__cxa_get_exception" } } // { dg-options "-mmacosx-version-min=10.4" } +// { dg-additional-options "-Wno-deprecated" { target c++17 } } #include <exception> #include <cstdlib> --- gcc/testsuite/g++.dg/eh/uncaught4.C.jj 2014-01-28 14:03:44.000000000 +0100 +++ gcc/testsuite/g++.dg/eh/uncaught4.C 2017-09-28 14:33:29.811098178 +0200 @@ -1,5 +1,6 @@ // PR c++/41174 // { dg-do run } +// { dg-additional-options "-Wno-deprecated" { target c++17 } } #include <exception> --- gcc/testsuite/g++.old-deja/g++.mike/eh48.C.jj 2008-09-05 12:54:56.000000000 +0200 +++ gcc/testsuite/g++.old-deja/g++.mike/eh48.C 2017-09-28 14:34:09.792632463 +0200 @@ -1,5 +1,6 @@ // { dg-do run { xfail sparc64-*-elf arm-*-pe } } // { dg-options "-fexceptions" } +// { dg-additional-options "-Wno-deprecated" { target c++17 } } #include <exception> #include <stdlib.h> Jakub
On 09/28/2017 11:52 AM, Jakub Jelinek wrote: > Hi! > > On Wed, Sep 20, 2017 at 05:35:26PM +0100, Jonathan Wakely wrote: >> C++17 deprecates uncaught_exception in favour of uncaught_exceptions, >> so this adds the attribute. >> >> PR libstdc++/81469 >> * libsupc++/exception (uncaught_exception): Deprecate for C++17. >> * testsuite/18_support/exception_ptr/62258.cc: Add -Wno-deprecated. >> * testsuite/18_support/uncaught_exception/14026.cc: Likewise. >> >> Tested powerpc64le-linux, committed to trunk. > > This broke a couple of tests with make check-c++-all, the following patch > should fix that. > > Regtested on x86_64-linux and i686-linux, including make check-c++-all, ok > for trunk? ok, thanks nathan
diff --git a/libstdc++-v3/libsupc++/exception b/libstdc++-v3/libsupc++/exception index e51d31c938b..9b177c7ee8a 100644 --- a/libstdc++-v3/libsupc++/exception +++ b/libstdc++-v3/libsupc++/exception @@ -98,9 +98,10 @@ namespace std * %exception can result in a call of @c terminate() * (15.5.1).' */ + _GLIBCXX17_DEPRECATED bool uncaught_exception() _GLIBCXX_USE_NOEXCEPT __attribute__ ((__pure__)); -#if __cplusplus > 201402L || !defined(__STRICT_ANSI__) // c++1z or gnu++98 +#if __cplusplus > 201402L || !defined(__STRICT_ANSI__) // c++17 or gnu++98 #define __cpp_lib_uncaught_exceptions 201411 /// The number of uncaught exceptions. int uncaught_exceptions() _GLIBCXX_USE_NOEXCEPT __attribute__ ((__pure__)); diff --git a/libstdc++-v3/testsuite/18_support/exception_ptr/62258.cc b/libstdc++-v3/testsuite/18_support/exception_ptr/62258.cc index a53b0669b83..635672cc255 100644 --- a/libstdc++-v3/testsuite/18_support/exception_ptr/62258.cc +++ b/libstdc++-v3/testsuite/18_support/exception_ptr/62258.cc @@ -1,3 +1,4 @@ +// { dg-options "-Wno-deprecated" } // { dg-do run { target c++11 } } // Copyright (C) 2015-2017 Free Software Foundation, Inc. diff --git a/libstdc++-v3/testsuite/18_support/uncaught_exception/14026.cc b/libstdc++-v3/testsuite/18_support/uncaught_exception/14026.cc index 78581af5629..8bc4953e028 100644 --- a/libstdc++-v3/testsuite/18_support/uncaught_exception/14026.cc +++ b/libstdc++-v3/testsuite/18_support/uncaught_exception/14026.cc @@ -18,6 +18,8 @@ // PR 14026 // 18.6.4 uncaught_exception +// { dg-options "-Wno-deprecated" } + #include <cstdlib> #include <exception> #include <testsuite_hooks.h>