aboutsummaryrefslogtreecommitdiff
path: root/gdb/inferior.h
diff options
context:
space:
mode:
authorTom de Vries <tdevries@suse.de>2020-07-05 23:47:20 +0200
committerTom de Vries <tdevries@suse.de>2020-07-05 23:47:20 +0200
commit1e7c1b224272b7415ed053c29880b7b0329073b2 (patch)
tree667a9ef7cd8ed955b27001e9646e27c3b1d2be7f /gdb/inferior.h
parent983d1fb49c531786021f5c649ac3cbf8e82db632 (diff)
downloadbinutils-1e7c1b224272b7415ed053c29880b7b0329073b2.zip
binutils-1e7c1b224272b7415ed053c29880b7b0329073b2.tar.gz
binutils-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/inferior.h')
-rw-r--r--gdb/inferior.h10
1 files changed, 9 insertions, 1 deletions
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 ());
}
}