From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9360 invoked by alias); 2 May 2010 23:20:18 -0000 Received: (qmail 9349 invoked by uid 22791); 2 May 2010 23:20:16 -0000 X-SWARE-Spam-Status: No, hits=-6.8 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_HI,SPF_HELO_PASS,TW_VW,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sun, 02 May 2010 23:20:09 +0000 Received: from int-mx05.intmail.prod.int.phx2.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.18]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o42NK0qE016810 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Sun, 2 May 2010 19:20:00 -0400 Received: from host0.dyn.jankratochvil.net (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx05.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o42NJkdM009768 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sun, 2 May 2010 19:19:55 -0400 Received: from host0.dyn.jankratochvil.net (localhost [127.0.0.1]) by host0.dyn.jankratochvil.net (8.14.4/8.14.4) with ESMTP id o42NJhfv028059; Mon, 3 May 2010 01:19:43 +0200 Received: (from jkratoch@localhost) by host0.dyn.jankratochvil.net (8.14.4/8.14.4/Submit) id o42NJfMm028049; Mon, 3 May 2010 01:19:41 +0200 Date: Sun, 02 May 2010 23:20:00 -0000 From: Jan Kratochvil To: Pedro Alves Cc: gdb-patches@sourceware.org, Mark Kettenis Subject: [patch] ATTR_NORETURN -> ATTRIBUTE_NORETURN unification [Re: [patch] ATTR_* -> ATTRIBUTE_* unification] Message-ID: <20100502231941.GA27802@host0.dyn.jankratochvil.net> References: <20100430181605.GA19190@host0.dyn.jankratochvil.net> <201005010110.37403.pedro@codesourcery.com> <20100502120419.GA19249@host0.dyn.jankratochvil.net> <201005021633.14850.pedro@codesourcery.com> <20100502213636.GA21869@host0.dyn.jankratochvil.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100502213636.GA21869@host0.dyn.jankratochvil.net> User-Agent: Mutt/1.5.20 (2009-08-17) X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2010-05/txt/msg00022.txt.bz2 On Sun, 02 May 2010 23:36:36 +0200, Jan Kratochvil wrote: > I will post some similar NORETURN + ATTR_NORETURN -> ATTRIBUTE_NORETURN. > > Going to drop NORETURN as it is only for gcc < 2.7, ansidecl.h does not > support it and a missing noreturn flag can only affect code size, performance > and affect compilation diagnostics. error_no_arg was present both in command.h and cli/cli-cmds.h. Moving it the other way would require #include changes. mips_error will start to be effectively declared as noreturn. No regressions on {x86_64,x86_64-m32,i686}-fedora12-linux-gnu. Similar work is needed in gdb/gdbserver/. doc/ talks about .mh files; but when similar macros are already used from include/ for bfd/ etc. it probably was inappropriate to do from .mh. Thanks, Jan gdb/ 2010-05-03 Jan Kratochvil * cli/cli-cmds.h (error_no_arg): Remove. Move the comment ... * command.h (error_no_arg): ... here. Remove NORETURN, change ATTR_NORETURN to ATTRIBUTE_NORETURN. * defs.h (NORETURN, ATTR_NORETURN): Remove. (perror_with_name, verror, error, error_stream, vfatal, fatal) (internal_verror, internal_error, nomem): Remove NORETURN, change ATTR_NORETURN to ATTRIBUTE_NORETURN. * exceptions.c (throw_exception, deprecated_throw_reason, throw_verror) (throw_vfatal, throw_error): Remove NORETURN. (throw_it): Remove NORETURN, change ATTR_NORETURN to ATTRIBUTE_NORETURN. * exceptions.h (throw_exception, throw_verror, throw_vfatal) (throw_error, deprecated_throw_reason): Remove NORETURN, change ATTR_NORETURN to ATTRIBUTE_NORETURN. * linespec.c (cplusplus_error): Remove NORETURN, change ATTR_NORETURN to ATTRIBUTE_NORETURN for prototype, for the definition only remove NORETURN. * remote-mips.c (mips_error): Change NORETURN to ATTRIBUTE_NORETURN. * remote-sim.c (gdb_os_error): Change ATTR_NORETURN to ATTRIBUTE_NORETURN. * target.c (tcomplain): Likewise. * target.h (noprocess): Remove NORETURN, change ATTR_NORETURN to ATTRIBUTE_NORETURN. * utils.c (verror, error, vfatal, fatal, error_stream, internal_verror) (internal_error, perror_with_name, nomem): Remove NORETURN. * xml-support.h (gdb_xml_error): Change ATTR_NORETURN to ATTRIBUTE_NORETURN. doc/ 2010-05-03 Jan Kratochvil * gdbint.texinfo (Host Definition): Remove items NORETURN and ATTR_NORETURN. --- a/gdb/cli/cli-cmds.h +++ b/gdb/cli/cli-cmds.h @@ -128,11 +128,6 @@ extern void source_script (char *, int); extern int find_and_open_script (const char *file, int search_path, FILE **streamp, char **full_path); -/* Used everywhere whenever at least one parameter is required and - none is specified. */ - -extern NORETURN void error_no_arg (char *) ATTR_NORETURN; - /* Command tracing state. */ extern int source_verbose; --- a/gdb/command.h +++ b/gdb/command.h @@ -341,7 +341,10 @@ extern void add_setshow_zuinteger_cmd (char *name, extern void cmd_show_list (struct cmd_list_element *, int, char *); -extern NORETURN void error_no_arg (char *) ATTR_NORETURN; +/* Used everywhere whenever at least one parameter is required and + none is specified. */ + +extern void error_no_arg (char *) ATTRIBUTE_NORETURN; extern void dont_repeat (void); --- a/gdb/defs.h +++ b/gdb/defs.h @@ -267,36 +267,6 @@ struct cleanup void *arg; }; - -/* The ability to declare that a function never returns is useful, but - not really required to compile GDB successfully, so the NORETURN and - ATTR_NORETURN macros normally expand into nothing. */ - -/* If compiling with older versions of GCC, a function may be declared - "volatile" to indicate that it does not return. */ - -#ifndef NORETURN -#if defined(__GNUC__) \ - && (__GNUC__ == 1 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)) -#define NORETURN volatile -#else -#define NORETURN /* nothing */ -#endif -#endif - -/* GCC 2.5 and later versions define a function attribute "noreturn", - which is the preferred way to declare that a function never returns. - However GCC 2.7 appears to be the first version in which this fully - works everywhere we use it. */ - -#ifndef ATTR_NORETURN -#if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)) -#define ATTR_NORETURN __attribute__ ((noreturn)) -#else -#define ATTR_NORETURN /* nothing */ -#endif -#endif - /* Be conservative and use enum bitfields only with GCC. This is copied from gcc 3.3.1, system.h. */ @@ -552,7 +522,7 @@ extern char *hex_string_custom (LONGEST, int); extern void fprintf_symbol_filtered (struct ui_file *, char *, enum language, int); -extern NORETURN void perror_with_name (const char *) ATTR_NORETURN; +extern void perror_with_name (const char *) ATTRIBUTE_NORETURN; extern void print_sys_errmsg (const char *, int); @@ -921,24 +891,26 @@ extern char *quit_pre_print; extern char *warning_pre_print; -extern NORETURN void verror (const char *fmt, va_list ap) - ATTR_NORETURN ATTRIBUTE_PRINTF (1, 0); +extern void verror (const char *fmt, va_list ap) + ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (1, 0); -extern NORETURN void error (const char *fmt, ...) ATTR_NORETURN ATTRIBUTE_PRINTF (1, 2); +extern void error (const char *fmt, ...) + ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (1, 2); -extern NORETURN void error_stream (struct ui_file *) ATTR_NORETURN; +extern void error_stream (struct ui_file *) ATTRIBUTE_NORETURN; -extern NORETURN void vfatal (const char *fmt, va_list ap) - ATTR_NORETURN ATTRIBUTE_PRINTF (1, 0); +extern void vfatal (const char *fmt, va_list ap) + ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (1, 0); -extern NORETURN void fatal (const char *fmt, ...) ATTR_NORETURN ATTRIBUTE_PRINTF (1, 2); +extern void fatal (const char *fmt, ...) + ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (1, 2); -extern NORETURN void internal_verror (const char *file, int line, - const char *, va_list ap) - ATTR_NORETURN ATTRIBUTE_PRINTF (3, 0); +extern void internal_verror (const char *file, int line, const char *, + va_list ap) + ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (3, 0); -extern NORETURN void internal_error (const char *file, int line, - const char *, ...) ATTR_NORETURN ATTRIBUTE_PRINTF (3, 4); +extern void internal_error (const char *file, int line, const char *, ...) + ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (3, 4); extern void internal_vwarning (const char *file, int line, const char *, va_list ap) @@ -947,7 +919,7 @@ extern void internal_vwarning (const char *file, int line, extern void internal_warning (const char *file, int line, const char *, ...) ATTRIBUTE_PRINTF (3, 4); -extern NORETURN void nomem (long) ATTR_NORETURN; +extern void nomem (long) ATTRIBUTE_NORETURN; extern void warning (const char *, ...) ATTRIBUTE_PRINTF (1, 2); --- a/gdb/doc/gdbint.texinfo +++ b/gdb/doc/gdbint.texinfo @@ -2784,19 +2784,6 @@ Define this if @code{lseek (n)} does not necessarily move to byte number @code{n} in the file. This is only used when reading source files. It is normally faster to define @code{CRLF_SOURCE_FILES} when possible. -@item NORETURN -If defined, this should be one or more tokens, such as @code{volatile}, -that can be used in both the declaration and definition of functions to -indicate that they never return. The default is already set correctly -if compiling with GCC. This will almost never need to be defined. - -@item ATTR_NORETURN -If defined, this should be one or more tokens, such as -@code{__attribute__ ((noreturn))}, that can be used in the declarations -of functions to indicate that they never return. The default is already -set correctly if compiling with GCC. This will almost never need to be -defined. - @item lint Define this to help placate @code{lint} in some situations. --- a/gdb/exceptions.c +++ b/gdb/exceptions.c @@ -210,7 +210,7 @@ exceptions_state_mc_action_iter_1 (void) /* Return EXCEPTION to the nearest containing catch_errors(). */ -NORETURN void +void throw_exception (struct gdb_exception exception) { struct thread_info *tp = NULL; @@ -239,7 +239,7 @@ throw_exception (struct gdb_exception exception) static char *last_message; -NORETURN void +void deprecated_throw_reason (enum return_reason reason) { struct gdb_exception exception; @@ -374,7 +374,7 @@ print_any_exception (struct ui_file *file, const char *prefix, } } -NORETURN static void ATTR_NORETURN ATTRIBUTE_PRINTF (3, 0) +static void ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (3, 0) throw_it (enum return_reason reason, enum errors error, const char *fmt, va_list ap) { @@ -396,19 +396,19 @@ throw_it (enum return_reason reason, enum errors error, const char *fmt, throw_exception (e); } -NORETURN void +void throw_verror (enum errors error, const char *fmt, va_list ap) { throw_it (RETURN_ERROR, error, fmt, ap); } -NORETURN void +void throw_vfatal (const char *fmt, va_list ap) { throw_it (RETURN_QUIT, GDB_NO_ERROR, fmt, ap); } -NORETURN void +void throw_error (enum errors error, const char *fmt, ...) { va_list args; --- a/gdb/exceptions.h +++ b/gdb/exceptions.h @@ -166,17 +166,18 @@ extern void exception_fprintf (struct ui_file *file, struct gdb_exception e, be a good thing or a dangerous thing.'' -- the Existential Wombat. */ -extern NORETURN void throw_exception (struct gdb_exception exception) ATTR_NORETURN; -extern NORETURN void throw_verror (enum errors, const char *fmt, va_list ap) - ATTR_NORETURN ATTRIBUTE_PRINTF (2, 0); -extern NORETURN void throw_vfatal (const char *fmt, va_list ap) - ATTR_NORETURN ATTRIBUTE_PRINTF (1, 0); -extern NORETURN void throw_error (enum errors error, const char *fmt, - ...) ATTR_NORETURN ATTRIBUTE_PRINTF (2, 3); +extern void throw_exception (struct gdb_exception exception) ATTRIBUTE_NORETURN; +extern void throw_verror (enum errors, const char *fmt, va_list ap) + ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (2, 0); +extern void throw_vfatal (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); /* Instead of deprecated_throw_reason, code should use catch_exception and throw_exception. */ -extern NORETURN void deprecated_throw_reason (enum return_reason reason) ATTR_NORETURN; +extern void deprecated_throw_reason (enum return_reason reason) + ATTRIBUTE_NORETURN; /* Call FUNC(UIOUT, FUNC_ARGS) but wrapped within an exception handler. If an exception (enum return_reason) is thrown using --- a/gdb/linespec.c +++ b/gdb/linespec.c @@ -78,9 +78,8 @@ static struct symtabs_and_lines find_method (int funfirstline, struct symbol *sym_class, int *not_found_ptr); -static NORETURN void cplusplus_error (const char *name, - const char *fmt, ...) - ATTR_NORETURN ATTRIBUTE_PRINTF (2, 3); +static void cplusplus_error (const char *name, const char *fmt, ...) + ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (2, 3); static int total_number_of_methods (struct type *type); @@ -146,7 +145,7 @@ symtabs_and_lines minsym_found (int funfirstline, single quoted demangled C++ symbols as part of the completion error. */ -static NORETURN void +static void cplusplus_error (const char *name, const char *fmt, ...) { struct ui_file *tmp_stream; --- a/gdb/remote-mips.c +++ b/gdb/remote-mips.c @@ -473,7 +473,7 @@ close_ports (void) all hell to break loose--the rest of GDB will tend to get left in an inconsistent state. */ -static NORETURN void +static void ATTRIBUTE_NORETURN mips_error (char *string,...) { va_list args; --- a/gdb/remote-sim.c +++ b/gdb/remote-sim.c @@ -70,7 +70,8 @@ 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 *, ...) ATTR_NORETURN; +static void gdb_os_error (host_callback *, const char *, ...) + ATTRIBUTE_NORETURN; static void gdbsim_kill (struct target_ops *); --- a/gdb/target.c +++ b/gdb/target.c @@ -56,7 +56,7 @@ static int default_region_ok_for_hw_watchpoint (CORE_ADDR, int); static int nosymbol (char *, CORE_ADDR *); -static void tcomplain (void) ATTR_NORETURN; +static void tcomplain (void) ATTRIBUTE_NORETURN; static int nomemory (CORE_ADDR, char *, int, int, struct target_ops *); --- a/gdb/target.h +++ b/gdb/target.h @@ -1485,7 +1485,7 @@ extern int default_memory_insert_breakpoint (struct gdbarch *, struct bp_target_ extern void initialize_targets (void); -extern NORETURN void noprocess (void) ATTR_NORETURN; +extern void noprocess (void) ATTRIBUTE_NORETURN; extern void target_require_runnable (void); --- a/gdb/utils.c +++ b/gdb/utils.c @@ -806,13 +806,13 @@ warning (const char *string, ...) The first argument STRING is the error message, used as a fprintf string, and the remaining args are passed as arguments to it. */ -NORETURN void +void verror (const char *string, va_list args) { throw_verror (GENERIC_ERROR, string, args); } -NORETURN void +void error (const char *string, ...) { va_list args; @@ -825,13 +825,13 @@ error (const char *string, ...) The first argument STRING is the error message, used as a fprintf string, and the remaining args are passed as arguments to it. */ -NORETURN void +void vfatal (const char *string, va_list args) { throw_vfatal (string, args); } -NORETURN void +void fatal (const char *string, ...) { va_list args; @@ -840,7 +840,7 @@ fatal (const char *string, ...) va_end (args); } -NORETURN void +void error_stream (struct ui_file *stream) { char *message = ui_file_xstrdup (stream, NULL); @@ -1036,14 +1036,14 @@ static struct internal_problem internal_error_problem = { "internal-error", internal_problem_ask, internal_problem_ask }; -NORETURN void +void internal_verror (const char *file, int line, const char *fmt, va_list ap) { internal_vproblem (&internal_error_problem, file, line, fmt, ap); deprecated_throw_reason (RETURN_ERROR); } -NORETURN void +void internal_error (const char *file, int line, const char *string, ...) { va_list ap; @@ -1174,7 +1174,7 @@ Show whether GDB will create a core file of GDB when %s is detected"), as the file name for which the error was encountered. Then return to command level. */ -NORETURN void +void perror_with_name (const char *string) { char *err; @@ -1240,7 +1240,7 @@ quit (void) /* Called when a memory allocation fails, with the number of bytes of memory requested in SIZE. */ -NORETURN void +void nomem (long size) { if (size > 0) --- a/gdb/xml-support.h +++ b/gdb/xml-support.h @@ -205,7 +205,7 @@ void gdb_xml_debug (struct gdb_xml_parser *parser, const char *format, ...) parsing. */ void gdb_xml_error (struct gdb_xml_parser *parser, const char *format, ...) - ATTR_NORETURN ATTRIBUTE_PRINTF (2, 0); + ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (2, 0); /* Parse an integer attribute into a ULONGEST. */