chg: dev: use only c23 or c11 noreturn specifiers

Use `[[noreturn]]` when compiling with C23 or greater.

The attribute macro name has been capitalized as `NORETURN` as defining it as `noreturn` breaks external headers.
`#define noreturn __attribute__((noreturn))` wasn't used as C11's `stdnoreturn.h`/`_Noreturn` is required to build BIND9 in the first place.

Merge branch 'aydin/noreturn-c23' into 'main'

See merge request isc-projects/bind9!9149
This commit is contained in:
Aydın Mercan 2024-08-07 15:42:57 +00:00
commit cd92a145a3
34 changed files with 40 additions and 51 deletions

View file

@ -54,7 +54,7 @@ isc_log_t *logc = NULL;
} while (0)
/*% usage */
noreturn static void
ISC_NORETURN static void
usage(void);
static void

View file

@ -62,7 +62,7 @@ static enum { progmode_check, progmode_compile } progmode;
} \
} while (0)
noreturn static void
ISC_NORETURN static void
usage(void);
static void

View file

@ -60,7 +60,7 @@ bool verbose = false;
const char *keyfile, *keydef;
noreturn static void
ISC_NORETURN static void
usage(int status);
static void

View file

@ -53,7 +53,7 @@ const char *progname;
static enum { progmode_keygen, progmode_confgen } progmode;
bool verbose = false; /* needed by util.c but not used here */
noreturn static void
ISC_NORETURN static void
usage(int status);
static void

View file

@ -36,7 +36,7 @@ ISC_LANG_BEGINDECLS
void
notify(const char *fmt, ...) ISC_FORMAT_PRINTF(1, 2);
noreturn void
ISC_NORETURN void
fatal(const char *format, ...) ISC_FORMAT_PRINTF(1, 2);
ISC_LANG_ENDDECLS

View file

@ -250,7 +250,7 @@ usage(void) {
exit(EXIT_FAILURE);
}
noreturn static void
ISC_NORETURN static void
fatal(const char *format, ...) ISC_FORMAT_PRINTF(1, 2);
static void

View file

@ -111,7 +111,7 @@ usage(void) {
fprintf(stderr, "Press <Help> for complete list of options\n");
}
#else /* if TARGET_OS_IPHONE */
noreturn static void
ISC_NORETURN static void
usage(void);
static void

View file

@ -293,13 +293,13 @@ getaddresses(dig_lookup_t *lookup, const char *host, isc_result_t *resultp);
isc_result_t
get_reverse(char *reverse, size_t len, char *value, bool strict);
noreturn void
ISC_NORETURN void
fatal(const char *format, ...) ISC_FORMAT_PRINTF(1, 2);
void
warn(const char *format, ...) ISC_FORMAT_PRINTF(1, 2);
noreturn void
ISC_NORETURN void
digexit(void);
void

View file

@ -99,7 +99,7 @@ rcode_totext(dns_rcode_t rcode) {
return (totext.deconsttext);
}
noreturn static void
ISC_NORETURN static void
show_usage(void);
static void

View file

@ -836,7 +836,7 @@ fgets_next_command(void *arg) {
cmdline = fgets(cmdlinebuf, COMMSIZE, stdin);
}
noreturn static void
ISC_NORETURN static void
usage(void);
static void

View file

@ -1028,7 +1028,7 @@ nsdiff(uint32_t ttl, dns_rdataset_t *oldset, dns_rdataset_t *newset) {
}
}
noreturn static void
ISC_NORETURN static void
usage(void);
static void

View file

@ -324,7 +324,7 @@ emits(bool showall, bool cds, dns_rdata_t *rdata) {
}
}
noreturn static void
ISC_NORETURN static void
usage(void);
static void

View file

@ -262,7 +262,7 @@ emit(const char *dir, dns_rdata_t *rdata) {
dst_key_free(&key);
}
noreturn static void
ISC_NORETURN static void
usage(void);
static void

View file

@ -43,7 +43,7 @@
const char *program = "dnssec-keyfromlabel";
noreturn static void
ISC_NORETURN static void
usage(void);
static void

View file

@ -74,7 +74,7 @@ static int min_dh = 128;
isc_log_t *lctx = NULL;
noreturn static void
ISC_NORETURN static void
usage(void);
static void

View file

@ -38,7 +38,7 @@ const char *program = "dnssec-revoke";
static isc_mem_t *mctx = NULL;
noreturn static void
ISC_NORETURN static void
usage(void);
static void

View file

@ -42,7 +42,7 @@ const char *program = "dnssec-settime";
static isc_mem_t *mctx = NULL;
noreturn static void
ISC_NORETURN static void
usage(void);
static void

View file

@ -3201,7 +3201,7 @@ print_version(FILE *fp) {
fprintf(fp, "; %s version %s\n", program, PACKAGE_VERSION);
}
noreturn static void
ISC_NORETURN static void
usage(void);
static void

View file

@ -136,7 +136,7 @@ loadzone(char *file, char *origin, dns_rdataclass_t rdclass, dns_db_t **db) {
}
}
noreturn static void
ISC_NORETURN static void
usage(void);
static void

View file

@ -54,7 +54,7 @@ extern uint8_t dtype[8];
typedef void(fatalcallback_t)(void);
noreturn void
ISC_NORETURN void
fatal(const char *format, ...) ISC_FORMAT_PRINTF(1, 2);
void
@ -66,7 +66,7 @@ check_result(isc_result_t result, const char *message);
void
vbprintf(int level, const char *fmt, ...) ISC_FORMAT_PRINTF(2, 3);
noreturn void
ISC_NORETURN void
version(const char *program);
void

View file

@ -26,7 +26,7 @@
*/
#define NAMED_MAIN_ARGS "46A:c:Cd:D:E:fFgL:M:m:n:N:p:sS:t:T:U:u:vVx:X:"
noreturn void
ISC_NORETURN void
named_main_earlyfatal(const char *format, ...) ISC_FORMAT_PRINTF(1, 2);
void

View file

@ -197,7 +197,7 @@ named_main_earlyfatal(const char *format, ...) {
_exit(EXIT_FAILURE);
}
noreturn static void
ISC_NORETURN static void
assertion_failed(const char *file, int line, isc_assertiontype_t type,
const char *cond);
@ -236,7 +236,7 @@ assertion_failed(const char *file, int line, isc_assertiontype_t type,
_exit(EXIT_FAILURE);
}
noreturn static void
ISC_NORETURN static void
library_fatal_error(const char *file, int line, const char *func,
const char *format, va_list args) ISC_FORMAT_PRINTF(3, 0);

View file

@ -426,7 +426,7 @@ const char *empty_zones[] = {
NULL
};
noreturn static void
ISC_NORETURN static void
fatal(const char *msg, isc_result_t result);
static void

View file

@ -198,7 +198,7 @@ send_update(dns_name_t *zonename, isc_sockaddr_t *primary);
static void
getinput(void *arg);
noreturn static void
ISC_NORETURN static void
fatal(const char *format, ...) ISC_FORMAT_PRINTF(1, 2);
static void

View file

@ -87,7 +87,7 @@ static int32_t timeout = RNDC_TIMEOUT;
static void
rndc_startconnect(isc_sockaddr_t *addr);
noreturn static void
ISC_NORETURN static void
usage(int status);
static void

View file

@ -36,7 +36,7 @@ ISC_LANG_BEGINDECLS
void
notify(const char *fmt, ...) ISC_FORMAT_PRINTF(1, 2);
noreturn void
ISC_NORETURN void
fatal(const char *format, ...) ISC_FORMAT_PRINTF(1, 2);
ISC_LANG_ENDDECLS

View file

@ -72,7 +72,7 @@ const char *program = "dnstap-read";
} \
} while (0)
noreturn static void
ISC_NORETURN static void
fatal(const char *format, ...);
static void

View file

@ -775,7 +775,7 @@ sendqueries(void *arg) {
}
}
noreturn static void
ISC_NORETURN static void
usage(void);
static void
@ -883,7 +883,7 @@ help(void) {
"Server ID)\n");
}
noreturn static void
ISC_NORETURN static void
fatal(const char *format, ...) ISC_FORMAT_PRINTF(1, 2);
static void

View file

@ -35,7 +35,7 @@ static isc_lex_t *lex;
static isc_lexspecials_t specials;
noreturn static void
ISC_NORETURN static void
usage(void);
static void
@ -63,7 +63,7 @@ cleanup(void) {
}
}
noreturn static void
ISC_NORETURN static void
fatal(const char *format, ...);
static void

View file

@ -36,7 +36,7 @@
const char *program = "nsec3hash";
noreturn static void
ISC_NORETURN static void
fatal(const char *format, ...);
static void

View file

@ -388,10 +388,6 @@ AC_COMPILE_IFELSE(
],
[AC_MSG_FAILURE([stdatomic.h header found, but compilation failed, please fix your toolchain.])])
AC_CHECK_HEADERS([stdnoreturn.h],
[],
[AC_MSG_ERROR([C11 standard headers not found, update your toolchain.])])
AC_C_CONST
AC_C_INLINE
AC_C_VOLATILE
@ -458,11 +454,6 @@ AC_COMPILE_IFELSE(
AC_MSG_WARN([uname is not correctly supported])
])
#
# check for GCC noreturn attribute
#
AX_GCC_FUNC_ATTRIBUTE([noreturn])
#
# check for GCC malloc attribute
#

View file

@ -33,7 +33,7 @@ typedef void (*isc_assertioncallback_t)(const char *, int, isc_assertiontype_t,
const char *);
/* coverity[+kill] */
noreturn void
ISC_NORETURN void
isc_assertion_failed(const char *, int, isc_assertiontype_t, const char *);
void isc_assertion_setcallback(isc_assertioncallback_t);

View file

@ -21,12 +21,10 @@
#define __has_c_attribute(x) 0
#endif /* if !defined(__has_c_attribute) */
#ifdef HAVE_STDNORETURN_H
#include <stdnoreturn.h>
#elif HAVE_FUNC_ATTRIBUTE_NORETURN
#define noreturn __attribute__((noreturn))
#if __has_c_attribute(noreturn) && __STDC_VERSION__ >= 202311L
#define ISC_NORETURN [[noreturn]]
#else
#define noreturn
#define ISC_NORETURN _Noreturn
#endif
#if HAVE_FUNC_ATTRIBUTE_RETURNS_NONNULL

View file

@ -38,7 +38,7 @@ isc_error_unexpected(const char *, int, const char *, const char *, ...)
ISC_FORMAT_PRINTF(4, 5);
/*% fatal error */
noreturn void
ISC_NORETURN void
isc_error_fatal(const char *, int, const char *, const char *, ...)
ISC_FORMAT_PRINTF(4, 5);