Commit 77777b33 by Francois-Xavier Coudert Committed by François-Xavier Coudert

stop.c: Use C11 _Noreturn.

	* runtime/stop.c: Use C11 _Noreturn.
	* libgfortran.h: Use C11 _Noreturn in prototypes.
	Move REALPART, IMAGPART and COMPLEX_ASSIGN macros...
	* intrinsics/c99_functions.c: ... here.

From-SVN: r212327
parent 8adb5dc7
2014-07-07 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 2014-07-07 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
* runtime/stop.c: Use C11 _Noreturn.
* libgfortran.h: Use C11 _Noreturn in prototypes.
Move REALPART, IMAGPART and COMPLEX_ASSIGN macros...
* intrinsics/c99_functions.c: ... here.
2014-07-07 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
* config/fpu-387.h, config/fpu-aix.h, config/fpu-sysv.h, * config/fpu-387.h, config/fpu-aix.h, config/fpu-sysv.h,
config/fpu-glibc.h: Use static assertions. config/fpu-glibc.h: Use static assertions.
......
...@@ -39,6 +39,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ...@@ -39,6 +39,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
# endif # endif
#endif #endif
/* Macros to get real and imaginary parts of a complex, and set
a complex value. */
#define REALPART(z) (__real__(z))
#define IMAGPART(z) (__imag__(z))
#define COMPLEX_ASSIGN(z_, r_, i_) {__real__(z_) = (r_); __imag__(z_) = (i_);}
/* Prototypes are included to silence -Wstrict-prototypes /* Prototypes are included to silence -Wstrict-prototypes
-Wmissing-prototypes. */ -Wmissing-prototypes. */
......
...@@ -235,11 +235,6 @@ extern int __mingw_snprintf (char *, size_t, const char *, ...) ...@@ -235,11 +235,6 @@ extern int __mingw_snprintf (char *, size_t, const char *, ...)
#undef signbit #undef signbit
#define signbit(x) __builtin_signbit(x) #define signbit(x) __builtin_signbit(x)
/* TODO: find the C99 version of these an move into above ifdef. */
#define REALPART(z) (__real__(z))
#define IMAGPART(z) (__imag__(z))
#define COMPLEX_ASSIGN(z_, r_, i_) {__real__(z_) = (r_); __imag__(z_) = (i_);}
#include "kinds.h" #include "kinds.h"
/* Define the type used for the current record number for large file I/O. /* Define the type used for the current record number for large file I/O.
...@@ -693,7 +688,7 @@ iexport_proto(backtrace); ...@@ -693,7 +688,7 @@ iexport_proto(backtrace);
#define GFC_OTOA_BUF_SIZE (GFC_LARGEST_BUF * 3 + 1) #define GFC_OTOA_BUF_SIZE (GFC_LARGEST_BUF * 3 + 1)
#define GFC_BTOA_BUF_SIZE (GFC_LARGEST_BUF * 8 + 1) #define GFC_BTOA_BUF_SIZE (GFC_LARGEST_BUF * 8 + 1)
extern void sys_abort (void) __attribute__ ((noreturn)); extern _Noreturn void sys_abort (void);
internal_proto(sys_abort); internal_proto(sys_abort);
extern ssize_t estr_write (const char *); extern ssize_t estr_write (const char *);
...@@ -709,26 +704,25 @@ internal_proto(st_printf); ...@@ -709,26 +704,25 @@ internal_proto(st_printf);
extern const char *gfc_xtoa (GFC_UINTEGER_LARGEST, char *, size_t); extern const char *gfc_xtoa (GFC_UINTEGER_LARGEST, char *, size_t);
internal_proto(gfc_xtoa); internal_proto(gfc_xtoa);
extern void os_error (const char *) __attribute__ ((noreturn)); extern _Noreturn void os_error (const char *);
iexport_proto(os_error); iexport_proto(os_error);
extern void show_locus (st_parameter_common *); extern void show_locus (st_parameter_common *);
internal_proto(show_locus); internal_proto(show_locus);
extern void runtime_error (const char *, ...) extern _Noreturn void runtime_error (const char *, ...)
__attribute__ ((noreturn, format (gfc_printf, 1, 2))); __attribute__ ((format (gfc_printf, 1, 2)));
iexport_proto(runtime_error); iexport_proto(runtime_error);
extern void runtime_error_at (const char *, const char *, ...) extern _Noreturn void runtime_error_at (const char *, const char *, ...)
__attribute__ ((noreturn, format (gfc_printf, 2, 3))); __attribute__ ((format (gfc_printf, 2, 3)));
iexport_proto(runtime_error_at); iexport_proto(runtime_error_at);
extern void runtime_warning_at (const char *, const char *, ...) extern void runtime_warning_at (const char *, const char *, ...)
__attribute__ ((format (gfc_printf, 2, 3))); __attribute__ ((format (gfc_printf, 2, 3)));
iexport_proto(runtime_warning_at); iexport_proto(runtime_warning_at);
extern void internal_error (st_parameter_common *, const char *) extern _Noreturn void internal_error (st_parameter_common *, const char *);
__attribute__ ((noreturn));
internal_proto(internal_error); internal_proto(internal_error);
extern const char *translate_error (int); extern const char *translate_error (int);
...@@ -875,8 +869,7 @@ internal_proto(filename_from_unit); ...@@ -875,8 +869,7 @@ internal_proto(filename_from_unit);
/* stop.c */ /* stop.c */
extern void stop_string (const char *, GFC_INTEGER_4) extern _Noreturn void stop_string (const char *, GFC_INTEGER_4);
__attribute__ ((noreturn));
export_proto(stop_string); export_proto(stop_string);
/* reshape_packed.c */ /* reshape_packed.c */
......
...@@ -83,8 +83,7 @@ report_exception (void) ...@@ -83,8 +83,7 @@ report_exception (void)
/* A numeric STOP statement. */ /* A numeric STOP statement. */
extern void stop_numeric (GFC_INTEGER_4) extern _Noreturn void stop_numeric (GFC_INTEGER_4);
__attribute__ ((noreturn));
export_proto(stop_numeric); export_proto(stop_numeric);
void void
...@@ -102,8 +101,7 @@ stop_numeric (GFC_INTEGER_4 code) ...@@ -102,8 +101,7 @@ stop_numeric (GFC_INTEGER_4 code)
/* A Fortran 2008 numeric STOP statement. */ /* A Fortran 2008 numeric STOP statement. */
extern void stop_numeric_f08 (GFC_INTEGER_4) extern _Noreturn void stop_numeric_f08 (GFC_INTEGER_4);
__attribute__ ((noreturn));
export_proto(stop_numeric_f08); export_proto(stop_numeric_f08);
void void
...@@ -136,8 +134,7 @@ stop_string (const char *string, GFC_INTEGER_4 len) ...@@ -136,8 +134,7 @@ stop_string (const char *string, GFC_INTEGER_4 len)
initiates error termination of execution." Thus, error_stop_string returns initiates error termination of execution." Thus, error_stop_string returns
a nonzero exit status code. */ a nonzero exit status code. */
extern void error_stop_string (const char *, GFC_INTEGER_4) extern _Noreturn void error_stop_string (const char *, GFC_INTEGER_4);
__attribute__ ((noreturn));
export_proto(error_stop_string); export_proto(error_stop_string);
void void
...@@ -154,8 +151,7 @@ error_stop_string (const char *string, GFC_INTEGER_4 len) ...@@ -154,8 +151,7 @@ error_stop_string (const char *string, GFC_INTEGER_4 len)
/* A numeric ERROR STOP statement. */ /* A numeric ERROR STOP statement. */
extern void error_stop_numeric (GFC_INTEGER_4) extern _Noreturn void error_stop_numeric (GFC_INTEGER_4);
__attribute__ ((noreturn));
export_proto(error_stop_numeric); export_proto(error_stop_numeric);
void void
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment