Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Tom de Vries <tdevries@suse.de>
To: gdb-patches@sourceware.org
Cc: Tom Tromey <tom@tromey.com>
Subject: [committed][gdb/build,c++17] Fix use of deprecated std::uncaught_exception
Date: Sun, 5 Jul 2020 23:47:54 +0200	[thread overview]
Message-ID: <20200705214752.GA4063@delia> (raw)

Hi,

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.

Committed to trunk.

Thanks,
- Tom

[gdb/build,c++17] Fix use of deprecated std::uncaught_exception

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.

---
 gdb/inferior.h | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/gdb/inferior.h b/gdb/inferior.h
index 572c5f3ae7..606cece6c0 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 ());
       }
   }


                 reply	other threads:[~2020-07-05 21:47 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200705214752.GA4063@delia \
    --to=tdevries@suse.de \
    --cc=gdb-patches@sourceware.org \
    --cc=tom@tromey.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox