diff options
author | Tom de Vries <tdevries@suse.de> | 2020-07-05 23:47:20 +0200 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2020-07-05 23:47:20 +0200 |
commit | 1e7c1b224272b7415ed053c29880b7b0329073b2 (patch) | |
tree | 667a9ef7cd8ed955b27001e9646e27c3b1d2be7f /gdb | |
parent | 983d1fb49c531786021f5c649ac3cbf8e82db632 (diff) | |
download | gdb-1e7c1b224272b7415ed053c29880b7b0329073b2.zip gdb-1e7c1b224272b7415ed053c29880b7b0329073b2.tar.gz gdb-1e7c1b224272b7415ed053c29880b7b0329073b2.tar.bz2 |
[gdb/build,c++17] Fix use of deprecated std::uncaught_exception
When compiling gdb with -std=gnu++17, we run into:
...
../../gdb/inferior.h: In member function ‘void \
infcall_suspend_state_deleter::operator()(infcall_suspend_state*) const’:
../../gdb/inferior.h:83:12: error: ‘bool std::uncaught_exception()’ is \
deprecated [-Werror=deprecated-declarations]
83 | if (!std::uncaught_exception ())
...
Fix this by rewriting using std::uncaught_exceptions.
Tested on x86_64-linux with gcc 9.3.1 and -std=gnu17/gnu++17.
Tested with test-case from RFC patch
https://sourceware.org/pipermail/gdb-patches/2020-June/169970.html.
gdb/ChangeLog:
2020-07-05 Tom de Vries <tdevries@suse.de>
PR build/26187
* inferior.h (struct infcall_suspend_state_deleter): If available, use
std::uncaught_exceptions instead of deprecated
std::uncaught_exception.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/inferior.h | 10 |
2 files changed, 16 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 8178e16..21dc3e2 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2020-07-05 Tom de Vries <tdevries@suse.de> + + PR build/26187 + * inferior.h (struct infcall_suspend_state_deleter): If available, use + std::uncaught_exceptions instead of deprecated + std::uncaught_exception. + 2020-07-02 Simon Marchi <simon.marchi@polymtl.ca> * macroexp.h (macro_stringify): Return diff --git a/gdb/inferior.h b/gdb/inferior.h index 572c5f3..606cece 100644 --- a/gdb/inferior.h +++ b/gdb/inferior.h @@ -21,6 +21,8 @@ #if !defined (INFERIOR_H) #define INFERIOR_H 1 +#include <exception> + struct target_waitstatus; struct frame_info; struct ui_file; @@ -80,7 +82,13 @@ struct infcall_suspend_state_deleter /* If we are restoring the inferior state due to an exception, some error message will be printed. So, only warn the user when we cannot restore during normal execution. */ - if (!std::uncaught_exception ()) + bool unwinding; +#if __cpp_lib_uncaught_exceptions + unwinding = std::uncaught_exceptions () > 0; +#else + unwinding = std::uncaught_exception (); +#endif + if (!unwinding) warning (_("Failed to restore inferior state: %s"), e.what ()); } } |