Index: runtime/stop.c =================================================================== --- runtime/stop.c (revision 212323) +++ runtime/stop.c (working copy) @@ -83,8 +83,7 @@ /* A numeric STOP statement. */ -extern void stop_numeric (GFC_INTEGER_4) - __attribute__ ((noreturn)); +extern _Noreturn void stop_numeric (GFC_INTEGER_4); export_proto(stop_numeric); void @@ -102,8 +101,7 @@ /* A Fortran 2008 numeric STOP statement. */ -extern void stop_numeric_f08 (GFC_INTEGER_4) - __attribute__ ((noreturn)); +extern _Noreturn void stop_numeric_f08 (GFC_INTEGER_4); export_proto(stop_numeric_f08); void @@ -136,8 +134,7 @@ initiates error termination of execution." Thus, error_stop_string returns a nonzero exit status code. */ -extern void error_stop_string (const char *, GFC_INTEGER_4) - __attribute__ ((noreturn)); +extern _Noreturn void error_stop_string (const char *, GFC_INTEGER_4); export_proto(error_stop_string); void @@ -154,8 +151,7 @@ /* A numeric ERROR STOP statement. */ -extern void error_stop_numeric (GFC_INTEGER_4) - __attribute__ ((noreturn)); +extern _Noreturn void error_stop_numeric (GFC_INTEGER_4); export_proto(error_stop_numeric); void Index: intrinsics/c99_functions.c =================================================================== --- intrinsics/c99_functions.c (revision 212323) +++ intrinsics/c99_functions.c (working copy) @@ -39,6 +39,13 @@ # 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 -Wmissing-prototypes. */ Index: libgfortran.h =================================================================== --- libgfortran.h (revision 212323) +++ libgfortran.h (working copy) @@ -235,11 +235,6 @@ #undef signbit #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" /* Define the type used for the current record number for large file I/O. @@ -693,7 +688,7 @@ #define GFC_OTOA_BUF_SIZE (GFC_LARGEST_BUF * 3 + 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); extern ssize_t estr_write (const char *); @@ -709,26 +704,25 @@ extern const char *gfc_xtoa (GFC_UINTEGER_LARGEST, char *, size_t); internal_proto(gfc_xtoa); -extern void os_error (const char *) __attribute__ ((noreturn)); +extern _Noreturn void os_error (const char *); iexport_proto(os_error); extern void show_locus (st_parameter_common *); internal_proto(show_locus); -extern void runtime_error (const char *, ...) - __attribute__ ((noreturn, format (gfc_printf, 1, 2))); +extern _Noreturn void runtime_error (const char *, ...) + __attribute__ ((format (gfc_printf, 1, 2))); iexport_proto(runtime_error); -extern void runtime_error_at (const char *, const char *, ...) - __attribute__ ((noreturn, format (gfc_printf, 2, 3))); +extern _Noreturn void runtime_error_at (const char *, const char *, ...) + __attribute__ ((format (gfc_printf, 2, 3))); iexport_proto(runtime_error_at); extern void runtime_warning_at (const char *, const char *, ...) __attribute__ ((format (gfc_printf, 2, 3))); iexport_proto(runtime_warning_at); -extern void internal_error (st_parameter_common *, const char *) - __attribute__ ((noreturn)); +extern _Noreturn void internal_error (st_parameter_common *, const char *); internal_proto(internal_error); extern const char *translate_error (int); @@ -875,8 +869,7 @@ /* stop.c */ -extern void stop_string (const char *, GFC_INTEGER_4) - __attribute__ ((noreturn)); +extern _Noreturn void stop_string (const char *, GFC_INTEGER_4); export_proto(stop_string); /* reshape_packed.c */