From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id eK4rK+/RlmZxwSgAWB0awg (envelope-from ) for ; Tue, 16 Jul 2024 16:02:55 -0400 Authentication-Results: simark.ca; dkim=pass (1024-bit key; unprotected) header.d=polymtl.ca header.i=@polymtl.ca header.a=rsa-sha256 header.s=default header.b=cVr3JJTk; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id A88C11E0C3; Tue, 16 Jul 2024 16:02:55 -0400 (EDT) Received: from server2.sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 902A91E030 for ; Tue, 16 Jul 2024 16:02:53 -0400 (EDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 4CC07384A056 for ; Tue, 16 Jul 2024 20:02:53 +0000 (GMT) Received: from smtp.polymtl.ca (smtp.polymtl.ca [132.207.4.11]) by sourceware.org (Postfix) with ESMTPS id A6AAC3858401 for ; Tue, 16 Jul 2024 20:02:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A6AAC3858401 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=polymtl.ca Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=polymtl.ca ARC-Filter: OpenARC Filter v1.0.0 sourceware.org A6AAC3858401 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=132.207.4.11 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1721160149; cv=none; b=cVX5613GbbjuWK7ailpUaqwx9nkp7veLqDrpgSmcaqrWJArd6ZyrOCTmiiXLrgKHfHRbDBGMU26CkSUxo2pScsnvmMQme4szd3KyBWeiXtYF1NAx+j0eypWRF2rc+O+ueF/6pPQPnPMM6cRpO3NVM3lJeVa8g2Fl/61Ihdb3GAw= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1721160149; c=relaxed/simple; bh=f3OqmIZzysW5z0Oi8ithJujyzw3GXspuzWcCnTxfx24=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=HXlWXKvNtR/9j87SSY0NCso/kBJvE/w5ZkW74ZHmLE0nK5HrUHNUW6wmW/n5HcaI0/fnFlNESMN/+gNaBAvaTBtCQX8J1w9h9YqUKbbMlDXGwli39Rd0+yuLSyy7zxTo0kGpH3AqLxOby7H1hXa1dGATNL8r6MFIrsSZWPhitb4= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from simark.ca (simark.ca [158.69.221.121]) (authenticated bits=0) by smtp.polymtl.ca (8.14.7/8.14.7) with ESMTP id 46GK2JCr072068 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 16 Jul 2024 16:02:24 -0400 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp.polymtl.ca 46GK2JCr072068 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=polymtl.ca; s=default; t=1721160144; bh=2OQmf06tgiT+GYD7SBwe8Dolpzhd+aoq9BOA85nRm0w=; h=From:To:Cc:Subject:Date:From; b=cVr3JJTkWzM/NVQFeP/PPo8uAmEbJoqMP6birKeWo6kPWSENI+arlqlGAE72ZY+Om TuMWBMipD7NazhjFYDPWWjDmKV3GVsCCpIwQCpGc7/VNCPQ3uhcLAYSHUpEoIq1YKw 2hdrCWVHcWLmrAM4jHvVyhe3COCOhXbdttXAlFj0= Received: from simark.localdomain (modemcable238.237-201-24.mc.videotron.ca [24.201.237.238]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPSA id 62B381E030; Tue, 16 Jul 2024 16:02:19 -0400 (EDT) From: Simon Marchi To: gdb-patches@sourceware.org Cc: Simon Marchi Subject: [PATCH] gdb, gdbserver, gdbsupport: use [[noreturn]] instead of ATTRIBUTE_NORETURN Date: Tue, 16 Jul 2024 16:02:12 -0400 Message-ID: <20240716200218.2249262-1-simon.marchi@polymtl.ca> X-Mailer: git-send-email 2.45.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Poly-FromMTA: (simark.ca [158.69.221.121]) at Tue, 16 Jul 2024 20:02:19 +0000 X-Spam-Status: No, score=-3188.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org C++ 11 has a built-in attribute for this, no need to use a compat macro. Change-Id: I90e4220d26e8f3949d91761f8a13cd9c37da3875 --- gdb/command.h | 2 +- gdb/dwarf2/loc.c | 2 +- gdb/event-top.c | 2 +- gdb/guile/guile-internal.h | 28 ++++++++++++++-------------- gdb/linespec.c | 8 ++++---- gdb/nat/aarch64-mte-linux-ptrace.c | 4 ++-- gdb/nat/fork-inferior.h | 7 +++---- gdb/nat/linux-namespaces.c | 2 +- gdb/python/python-internal.h | 5 ++--- gdb/remote-sim.c | 3 +-- gdb/remote.c | 4 ++-- gdb/symtab.c | 2 +- gdb/target.c | 4 ++-- gdb/target.h | 2 +- gdb/tid-parse.c | 2 +- gdb/tid-parse.h | 2 +- gdb/top.h | 2 +- gdb/utils.c | 2 +- gdb/xml-support.c | 4 ++-- gdb/xml-support.h | 5 +++-- gdbserver/gdbreplay.cc | 2 +- gdbserver/server.cc | 2 +- gdbserver/utils.cc | 2 +- gdbsupport/common-exceptions.cc | 2 +- gdbsupport/common-exceptions.h | 27 +++++++++++++-------------- gdbsupport/errors.h | 28 +++++++++++++--------------- 26 files changed, 75 insertions(+), 80 deletions(-) diff --git a/gdb/command.h b/gdb/command.h index 615f4e524aa9..0ceaf3e2a6dc 100644 --- a/gdb/command.h +++ b/gdb/command.h @@ -876,7 +876,7 @@ extern void cmd_show_list (struct cmd_list_element *, int); /* Used everywhere whenever at least one parameter is required and none is specified. */ -extern void error_no_arg (const char *) ATTRIBUTE_NORETURN; +[[noreturn]] extern void error_no_arg (const char *); /* Command line saving and repetition. diff --git a/gdb/dwarf2/loc.c b/gdb/dwarf2/loc.c index 5fea6683575d..637c81f040e8 100644 --- a/gdb/dwarf2/loc.c +++ b/gdb/dwarf2/loc.c @@ -2253,7 +2253,7 @@ dwarf2_get_symbol_read_needs (gdb::array_view expr, /* A helper function that throws an unimplemented error mentioning a given DWARF operator. */ -static void ATTRIBUTE_NORETURN +[[noreturn]] static void unimplemented (unsigned int op) { const char *name = get_DW_OP_name (op); diff --git a/gdb/event-top.c b/gdb/event-top.c index b81970d11bb1..cdc7874b7fad 100644 --- a/gdb/event-top.c +++ b/gdb/event-top.c @@ -894,7 +894,7 @@ unblock_signal (int sig) /* Called to handle fatal signals. SIG is the signal number. */ -static void ATTRIBUTE_NORETURN +[[noreturn]] static void handle_fatal_signal (int sig) { #ifdef TUI diff --git a/gdb/guile/guile-internal.h b/gdb/guile/guile-internal.h index be16fee0dd25..dea788450888 100644 --- a/gdb/guile/guile-internal.h +++ b/gdb/guile/guile-internal.h @@ -326,32 +326,32 @@ extern SCM gdbscm_make_type_error (const char *subr, int arg_pos, extern SCM gdbscm_make_invalid_object_error (const char *subr, int arg_pos, SCM bad_value, const char *error); -extern void gdbscm_invalid_object_error (const char *subr, int arg_pos, - SCM bad_value, const char *error) - ATTRIBUTE_NORETURN; +[[noreturn]] extern void gdbscm_invalid_object_error (const char *subr, + int arg_pos, + SCM bad_value, + const char *error); extern SCM gdbscm_make_out_of_range_error (const char *subr, int arg_pos, SCM bad_value, const char *error); -extern void gdbscm_out_of_range_error (const char *subr, int arg_pos, - SCM bad_value, const char *error) - ATTRIBUTE_NORETURN; +[[noreturn]] extern void gdbscm_out_of_range_error (const char *subr, + int arg_pos, SCM bad_value, + const char *error); extern SCM gdbscm_make_misc_error (const char *subr, int arg_pos, SCM bad_value, const char *error); -extern void gdbscm_misc_error (const char *subr, int arg_pos, - SCM bad_value, const char *error) - ATTRIBUTE_NORETURN; +[[noreturn]] extern void gdbscm_misc_error (const char *subr, int arg_pos, + SCM bad_value, const char *error); -extern void gdbscm_throw (SCM exception) ATTRIBUTE_NORETURN; +[[noreturn]] extern void gdbscm_throw (SCM exception); struct gdbscm_gdb_exception; extern SCM gdbscm_scm_from_gdb_exception (const gdbscm_gdb_exception &exception); -extern void gdbscm_throw_gdb_exception (gdbscm_gdb_exception exception) - ATTRIBUTE_NORETURN; +[[noreturn]] extern void gdbscm_throw_gdb_exception + (gdbscm_gdb_exception exception); extern void gdbscm_print_exception_with_stack (SCM port, SCM stack, SCM key, SCM args); @@ -368,8 +368,8 @@ extern excp_matcher_func gdbscm_user_error_p; extern SCM gdbscm_make_memory_error (const char *subr, const char *msg, SCM args); -extern void gdbscm_memory_error (const char *subr, const char *msg, SCM args) - ATTRIBUTE_NORETURN; +[[noreturn]] extern void gdbscm_memory_error (const char *subr, + const char *msg, SCM args); /* scm-safe-call.c */ diff --git a/gdb/linespec.c b/gdb/linespec.c index eae4f9f44f07..9b0652c9967b 100644 --- a/gdb/linespec.c +++ b/gdb/linespec.c @@ -1544,7 +1544,7 @@ decode_line_2 (struct linespec_state *self, /* Throw an appropriate error when SYMBOL is not found (optionally in FILENAME). */ -static void ATTRIBUTE_NORETURN +[[noreturn]] static void symbol_not_found_error (const char *symbol, const char *filename) { if (symbol == NULL) @@ -1586,7 +1586,7 @@ symbol_not_found_error (const char *symbol, const char *filename) /* Throw an appropriate error when an unexpected token is encountered in the input. */ -static void ATTRIBUTE_NORETURN +[[noreturn]] static void unexpected_linespec_error (linespec_parser *parser) { linespec_token token; @@ -1613,7 +1613,7 @@ unexpected_linespec_error (linespec_parser *parser) /* Throw an undefined label error. */ -static void ATTRIBUTE_NORETURN +[[noreturn]] static void undefined_label_error (const char *function, const char *label) { if (function != NULL) @@ -1628,7 +1628,7 @@ undefined_label_error (const char *function, const char *label) /* Throw a source file not found error. */ -static void ATTRIBUTE_NORETURN +[[noreturn]] static void source_file_not_found_error (const char *name) { throw_error (NOT_FOUND_ERROR, _("No source file named %s."), name); diff --git a/gdb/nat/aarch64-mte-linux-ptrace.c b/gdb/nat/aarch64-mte-linux-ptrace.c index ace3e1880610..9e2a2ce1ab5e 100644 --- a/gdb/nat/aarch64-mte-linux-ptrace.c +++ b/gdb/nat/aarch64-mte-linux-ptrace.c @@ -31,7 +31,7 @@ /* Helper function to display various possible errors when reading MTE tags. */ -static void ATTRIBUTE_NORETURN +[[noreturn]] static void aarch64_mte_linux_peek_error (int error) { switch (error) @@ -53,7 +53,7 @@ aarch64_mte_linux_peek_error (int error) /* Helper function to display various possible errors when writing MTE tags. */ -static void ATTRIBUTE_NORETURN +[[noreturn]] static void aarch64_mte_linux_poke_error (int error) { switch (error) diff --git a/gdb/nat/fork-inferior.h b/gdb/nat/fork-inferior.h index f3e2f54b4e92..0fd42181ac71 100644 --- a/gdb/nat/fork-inferior.h +++ b/gdb/nat/fork-inferior.h @@ -84,13 +84,12 @@ extern void gdb_flush_out_err (); /* Report an error that happened when starting to trace the inferior (i.e., when the "traceme_fun" callback is called on fork_inferior) and bail out. This function does not return. */ -extern void trace_start_error (const char *fmt, ...) - ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (1, 2); +[[noreturn]] extern void trace_start_error (const char *fmt, ...) + ATTRIBUTE_PRINTF (1, 2); /* Like "trace_start_error", but the error message is constructed by combining STRING with the system error message for errno. This function does not return. */ -extern void trace_start_error_with_name (const char *string) - ATTRIBUTE_NORETURN; +[[noreturn]] extern void trace_start_error_with_name (const char *string); #endif /* NAT_FORK_INFERIOR_H */ diff --git a/gdb/nat/linux-namespaces.c b/gdb/nat/linux-namespaces.c index 36a245c6a4cb..9abd3d689eac 100644 --- a/gdb/nat/linux-namespaces.c +++ b/gdb/nat/linux-namespaces.c @@ -548,7 +548,7 @@ mnsh_handle_readlink (int sock, const char *filename) /* The helper process. Never returns. Must be async-signal-safe. */ -static void mnsh_main (int sock) ATTRIBUTE_NORETURN; +[[noreturn]] static void mnsh_main (int sock); static void mnsh_main (int sock) diff --git a/gdb/python/python-internal.h b/gdb/python/python-internal.h index f25cd3b7d78f..5db308821f26 100644 --- a/gdb/python/python-internal.h +++ b/gdb/python/python-internal.h @@ -948,7 +948,7 @@ class gdbpy_gil int gdbpy_print_python_errors_p (void); void gdbpy_print_stack (void); void gdbpy_print_stack_or_quit (); -void gdbpy_handle_exception () ATTRIBUTE_NORETURN; +[[noreturn]] void gdbpy_handle_exception (); /* A wrapper around calling 'error'. Prefixes the error message with an 'Error occurred in Python' string. Use this in C++ code if we spot @@ -958,8 +958,7 @@ void gdbpy_handle_exception () ATTRIBUTE_NORETURN; This always calls error, and never returns. */ -void gdbpy_error (const char *fmt, ...) - ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (1, 2); +[[noreturn]] void gdbpy_error (const char *fmt, ...) ATTRIBUTE_PRINTF (1, 2); gdbpy_ref<> python_string_to_unicode (PyObject *obj); gdb::unique_xmalloc_ptr unicode_to_target_string (PyObject *unicode_str); diff --git a/gdb/remote-sim.c b/gdb/remote-sim.c index f92de6198891..67d3f4c8b1c1 100644 --- a/gdb/remote-sim.c +++ b/gdb/remote-sim.c @@ -69,8 +69,7 @@ static void gdb_os_vprintf_filtered (host_callback *, const char *, va_list); static void gdb_os_evprintf_filtered (host_callback *, const char *, va_list); -static void gdb_os_error (host_callback *, const char *, ...) - ATTRIBUTE_NORETURN; +[[noreturn]] static void gdb_os_error (host_callback *, const char *, ...); /* Naming convention: diff --git a/gdb/remote.c b/gdb/remote.c index 5d2e251dd7d1..a3617e86a009 100644 --- a/gdb/remote.c +++ b/gdb/remote.c @@ -1539,7 +1539,7 @@ static void remote_console_output (const char *msg, ui_file *stream); static void remote_btrace_reset (remote_state *rs); -static void remote_unpush_and_throw (remote_target *target); +[[noreturn]] static void remote_unpush_and_throw (remote_target *target); /* For "remote". */ @@ -6150,7 +6150,7 @@ remote_unpush_target (remote_target *target) fileio_handles_invalidate_target (target); } -static void ATTRIBUTE_NORETURN +[[noreturn]] static void remote_unpush_and_throw (remote_target *target) { remote_unpush_target (target); diff --git a/gdb/symtab.c b/gdb/symtab.c index bb2fc049819c..9d1170375ded 100644 --- a/gdb/symtab.c +++ b/gdb/symtab.c @@ -2439,7 +2439,7 @@ lookup_symbol_in_objfile_from_linkage_name (struct objfile *objfile, /* A helper function that throws an exception when a symbol was found in a psymtab but not in a symtab. */ -static void ATTRIBUTE_NORETURN +[[noreturn]] static void error_in_psymtab_expansion (enum block_enum block_index, const char *name, struct compunit_symtab *cust) { diff --git a/gdb/target.c b/gdb/target.c index 18027037d3bd..d23743729325 100644 --- a/gdb/target.c +++ b/gdb/target.c @@ -56,7 +56,7 @@ #include "cli/cli-decode.h" #include "cli/cli-style.h" -static void generic_tls_error (void) ATTRIBUTE_NORETURN; +[[noreturn]] static void generic_tls_error (void); static void default_rcmd (struct target_ops *, const char *, struct ui_file *); @@ -64,7 +64,7 @@ static int default_verify_memory (struct target_ops *self, const gdb_byte *data, CORE_ADDR memaddr, ULONGEST size); -static void tcomplain (void) ATTRIBUTE_NORETURN; +[[noreturn]] static void tcomplain (void); /* Mapping between target_info objects (which have address identity) and corresponding open/factory function/callback. Each add_target diff --git a/gdb/target.h b/gdb/target.h index d0af584a2bb0..f1b97cfb7d32 100644 --- a/gdb/target.h +++ b/gdb/target.h @@ -2490,7 +2490,7 @@ extern int default_memory_insert_breakpoint (struct gdbarch *, extern void initialize_targets (void); -extern void noprocess (void) ATTRIBUTE_NORETURN; +[[noreturn]] extern void noprocess (void); extern void target_require_runnable (void); diff --git a/gdb/tid-parse.c b/gdb/tid-parse.c index 623f55e14b36..1b8f343f0800 100644 --- a/gdb/tid-parse.c +++ b/gdb/tid-parse.c @@ -24,7 +24,7 @@ /* See tid-parse.h. */ -void ATTRIBUTE_NORETURN +[[noreturn]] void invalid_thread_id_error (const char *string) { error (_("Invalid thread ID: %s"), string); diff --git a/gdb/tid-parse.h b/gdb/tid-parse.h index b7bd920f48a6..7bbdeabe85b9 100644 --- a/gdb/tid-parse.h +++ b/gdb/tid-parse.h @@ -26,7 +26,7 @@ struct thread_info; /* Issue an invalid thread ID error, pointing at STRING, the invalid ID. */ -extern void ATTRIBUTE_NORETURN invalid_thread_id_error (const char *string); +[[noreturn]] extern void invalid_thread_id_error (const char *string); /* Parse TIDSTR as a per-inferior thread ID, in either INF_NUM.THR_NUM or THR_NUM form. In the latter case, the missing INF_NUM is filled diff --git a/gdb/top.h b/gdb/top.h index dc3f2aaf6141..b57cc3bd3cdf 100644 --- a/gdb/top.h +++ b/gdb/top.h @@ -42,7 +42,7 @@ extern void read_command_file (FILE *); extern void init_history (void); extern void command_loop (void); extern int quit_confirm (void); -extern void quit_force (int *, int) ATTRIBUTE_NORETURN; +[[noreturn]] extern void quit_force (int *, int); extern void quit_command (const char *, int); extern void quit_cover (void); extern void execute_command (const char *, int); diff --git a/gdb/utils.c b/gdb/utils.c index 17498e04312c..94310300fb5a 100644 --- a/gdb/utils.c +++ b/gdb/utils.c @@ -192,7 +192,7 @@ verror (const char *string, va_list args) /* Emit a message and abort. */ -static void ATTRIBUTE_NORETURN +[[noreturn]] static void abort_with_message (const char *msg) { if (current_ui == NULL) diff --git a/gdb/xml-support.c b/gdb/xml-support.c index b60b2c531a7c..33c8e41c5912 100644 --- a/gdb/xml-support.c +++ b/gdb/xml-support.c @@ -93,8 +93,8 @@ struct gdb_xml_parser ATTRIBUTE_PRINTF (2, 0); /* Issue an error message, and stop parsing. */ - void verror (const char *format, va_list ap) - ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (2, 0); + [[noreturn]] void verror (const char *format, va_list ap) + ATTRIBUTE_PRINTF (2, 0); void body_text (const XML_Char *text, int length); void start_element (const XML_Char *name, const XML_Char **attrs); diff --git a/gdb/xml-support.h b/gdb/xml-support.h index b9bac7a10c21..2ff0e3ca8c53 100644 --- a/gdb/xml-support.h +++ b/gdb/xml-support.h @@ -191,8 +191,9 @@ void gdb_xml_debug (struct gdb_xml_parser *parser, const char *format, ...) /* Issue an error message from one of PARSER's handlers, and stop parsing. */ -void gdb_xml_error (struct gdb_xml_parser *parser, const char *format, ...) - ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (2, 3); +[[noreturn]] void gdb_xml_error (struct gdb_xml_parser *parser, + const char *format, ...) + ATTRIBUTE_PRINTF (2, 3); /* Find the attribute named NAME in the set of parsed attributes ATTRIBUTES. Returns NULL if not found. */ diff --git a/gdbserver/gdbreplay.cc b/gdbserver/gdbreplay.cc index 0219e865ec73..c2359e4ab436 100644 --- a/gdbserver/gdbreplay.cc +++ b/gdbserver/gdbreplay.cc @@ -421,7 +421,7 @@ gdbreplay_usage (FILE *stream) /* Main function. This is called by the real "main" function, wrapped in a TRY_CATCH that handles any uncaught exceptions. */ -static void ATTRIBUTE_NORETURN +[[noreturn]] static void captured_main (int argc, char *argv[]) { FILE *fp; diff --git a/gdbserver/server.cc b/gdbserver/server.cc index 30d051774523..87b2a2677211 100644 --- a/gdbserver/server.cc +++ b/gdbserver/server.cc @@ -4038,7 +4038,7 @@ test_memory_tagging_functions (void) /* Main function. This is called by the real "main" function, wrapped in a TRY_CATCH that handles any uncaught exceptions. */ -static void ATTRIBUTE_NORETURN +[[noreturn]] static void captured_main (int argc, char *argv[]) { int bad_attach; diff --git a/gdbserver/utils.cc b/gdbserver/utils.cc index 302300770e84..57fceb1103de 100644 --- a/gdbserver/utils.cc +++ b/gdbserver/utils.cc @@ -31,7 +31,7 @@ the filesystem of small embedded targets with core files. If in development mode however, abort, producing core files to help with debugging GDBserver. */ -static void ATTRIBUTE_NORETURN +[[noreturn]] static void abort_or_exit () { #ifdef DEVELOPMENT diff --git a/gdbsupport/common-exceptions.cc b/gdbsupport/common-exceptions.cc index 5aa16129b02b..8301fb556fb1 100644 --- a/gdbsupport/common-exceptions.cc +++ b/gdbsupport/common-exceptions.cc @@ -191,7 +191,7 @@ throw_exception (gdb_exception &&exception) gdb_assert_not_reached ("invalid return reason"); } -static void ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (3, 0) +[[noreturn]] static void ATTRIBUTE_PRINTF (3, 0) throw_it (enum return_reason reason, enum errors error, const char *fmt, va_list ap) { diff --git a/gdbsupport/common-exceptions.h b/gdbsupport/common-exceptions.h index ffc02d2107f0..8f53cd475dad 100644 --- a/gdbsupport/common-exceptions.h +++ b/gdbsupport/common-exceptions.h @@ -336,27 +336,26 @@ struct gdb_quit_bad_alloc /* Throw an exception (as described by "struct gdb_exception"), landing in the inner most containing exception handler established using TRY/CATCH. */ -extern void throw_exception (gdb_exception &&exception) - ATTRIBUTE_NORETURN; +[[noreturn]] extern void throw_exception (gdb_exception &&exception); /* Throw an exception by executing a LONG JUMP to the inner most containing exception handler established using TRY_SJLJ. Necessary in some cases where we need to throw GDB exceptions across third-party library code (e.g., readline). */ -extern void throw_exception_sjlj (const struct gdb_exception &exception) - ATTRIBUTE_NORETURN; +[[noreturn]] extern void throw_exception_sjlj (const gdb_exception &exception); /* Convenience wrappers around throw_exception that throw GDB errors. */ -extern void throw_verror (enum errors, const char *fmt, va_list ap) - ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (2, 0); -extern void throw_vquit (const char *fmt, va_list ap) - ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (1, 0); -extern void throw_error (enum errors error, const char *fmt, ...) - ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (2, 3); -extern void throw_quit (const char *fmt, ...) - ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (1, 2); -extern void throw_forced_quit (const char *fmt, ...) - ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (1, 2); +[[noreturn]] extern void throw_verror (enum errors, const char *fmt, + va_list ap) + ATTRIBUTE_PRINTF (2, 0); +[[noreturn]] extern void throw_vquit (const char *fmt, va_list ap) + ATTRIBUTE_PRINTF (1, 0); +[[noreturn]] extern void throw_error (enum errors error, const char *fmt, ...) + ATTRIBUTE_PRINTF (2, 3); +[[noreturn]] extern void throw_quit (const char *fmt, ...) + ATTRIBUTE_PRINTF (1, 2); +[[noreturn]] [[noreturn]] extern void throw_forced_quit (const char *fmt, ...) + ATTRIBUTE_PRINTF (1, 2); #endif /* COMMON_COMMON_EXCEPTIONS_H */ diff --git a/gdbsupport/errors.h b/gdbsupport/errors.h index d8daed0f5f28..c0747f84bae1 100644 --- a/gdbsupport/errors.h +++ b/gdbsupport/errors.h @@ -36,11 +36,10 @@ extern void vwarning (const char *fmt, va_list args) a printf- or vprintf-style argument list. These functions do not return. The function "verror" must be provided by the client. */ -extern void error (const char *fmt, ...) - ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (1, 2); +[[noreturn]] extern void error (const char *fmt, ...) ATTRIBUTE_PRINTF (1, 2); -extern void verror (const char *fmt, va_list args) - ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (1, 0); +[[noreturn]] extern void verror (const char *fmt, va_list args) + ATTRIBUTE_PRINTF (1, 0); /* An internal error was detected. Internal errors indicate programming errors such as assertion failures, as opposed to @@ -53,16 +52,16 @@ extern void verror (const char *fmt, va_list args) automatically. The function "internal_verror" must be provided by the client. */ -extern void internal_error_loc (const char *file, int line, - const char *fmt, ...) - ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (3, 4); +[[noreturn]] extern void internal_error_loc (const char *file, int line, + const char *fmt, ...) + ATTRIBUTE_PRINTF (3, 4); #define internal_error(fmt, ...) \ internal_error_loc (__FILE__, __LINE__, fmt, ##__VA_ARGS__) -extern void internal_verror (const char *file, int line, - const char *fmt, va_list args) - ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (3, 0); +[[noreturn]] extern void internal_verror (const char *file, int line, + const char *fmt, va_list args) + ATTRIBUTE_PRINTF (3, 0); /* An internal problem was detected, but the requested operation can still proceed. Internal warnings indicate programming errors as @@ -93,14 +92,13 @@ extern std::string perror_string (const char *prefix, int errnum = 0); STRING with the system error message for errno. If ERRNUM is given, then use it in place of errno. This function does not return. */ -extern void perror_with_name (const char *string, int errnum = 0) - ATTRIBUTE_NORETURN; +[[noreturn]] extern void perror_with_name (const char *string, int errnum = 0); /* Call this function to handle memory allocation failures. This function does not return. This function must be provided by the client. */ -extern void malloc_failure (long size) ATTRIBUTE_NORETURN; +[[noreturn]] extern void malloc_failure (long size); /* Flush stdout and stderr. Must be provided by the client. */ @@ -124,8 +122,8 @@ extern const char *strwinerror (ULONGEST error); including STRING and the system text for the given error number. */ -extern void throw_winerror_with_name (const char *string, ULONGEST err) - ATTRIBUTE_NORETURN; +[[noreturn]] extern void throw_winerror_with_name (const char *string, + ULONGEST err); #endif /* USE_WIN32API */ base-commit: 9153eb8a7f5449c9baa67b2349cdfc0a47104c9a -- 2.45.2