From 217958d88713b5dc73d366d24dd64b2b311b86fe Mon Sep 17 00:00:00 2001 From: Lasse Collin Date: Mon, 11 Sep 2023 19:03:35 +0300 Subject: xz, xzdec, lzmainfo: Use tuklib_attr_noreturn. For compatibility with C23's [[noreturn]], tuklib_attr_noreturn must be at the beginning of declaration (before "extern" or "static", and even before any GNU C's __attribute__). This commit also moves all other function attributes to the beginning of function declarations. "extern" is kept at the beginning of a line so the attributes are listed on separate lines before "extern" or "static". --- src/xz/coder.c | 3 ++- src/xz/hardware.h | 3 ++- src/xz/message.h | 30 +++++++++++++++++------------- src/xz/options.c | 3 ++- src/xz/util.h | 8 ++++---- 5 files changed, 27 insertions(+), 20 deletions(-) (limited to 'src/xz') diff --git a/src/xz/coder.c b/src/xz/coder.c index 143fd99a..2ba64694 100644 --- a/src/xz/coder.c +++ b/src/xz/coder.c @@ -222,7 +222,8 @@ coder_add_block_filters(const char *str, size_t slot) } -static void lzma_attribute((__noreturn__)) +tuklib_attr_noreturn +static void memlimit_too_small(uint64_t memory_usage) { message(V_ERROR, _("Memory usage limit is too low for the given " diff --git a/src/xz/hardware.h b/src/xz/hardware.h index 2bb3d7ba..a67b26ef 100644 --- a/src/xz/hardware.h +++ b/src/xz/hardware.h @@ -71,4 +71,5 @@ extern bool hardware_memlimit_mtenc_is_default(void); extern uint64_t hardware_memlimit_mtdec_get(void); /// Display the amount of RAM and memory usage limits and exit. -extern void hardware_memlimit_show(void) lzma_attribute((__noreturn__)); +tuklib_attr_noreturn +extern void hardware_memlimit_show(void); diff --git a/src/xz/message.h b/src/xz/message.h index 21771eb4..20381705 100644 --- a/src/xz/message.h +++ b/src/xz/message.h @@ -44,42 +44,44 @@ extern enum message_verbosity message_verbosity_get(void); /// \brief Print a message if verbosity level is at least "verbosity" /// /// This doesn't touch the exit status. -extern void message(enum message_verbosity verbosity, const char *fmt, ...) - lzma_attribute((__format__(__printf__, 2, 3))); +lzma_attribute((__format__(__printf__, 2, 3))) +extern void message(enum message_verbosity verbosity, const char *fmt, ...); /// \brief Prints a warning and possibly sets exit status /// /// The message is printed only if verbosity level is at least V_WARNING. /// The exit status is set to WARNING unless it was already at ERROR. -extern void message_warning(const char *fmt, ...) - lzma_attribute((__format__(__printf__, 1, 2))); +lzma_attribute((__format__(__printf__, 1, 2))) +extern void message_warning(const char *fmt, ...); /// \brief Prints an error message and sets exit status /// /// The message is printed only if verbosity level is at least V_ERROR. /// The exit status is set to ERROR. -extern void message_error(const char *fmt, ...) - lzma_attribute((__format__(__printf__, 1, 2))); +lzma_attribute((__format__(__printf__, 1, 2))) +extern void message_error(const char *fmt, ...); /// \brief Prints an error message and exits with EXIT_ERROR /// /// The message is printed only if verbosity level is at least V_ERROR. -extern void message_fatal(const char *fmt, ...) - lzma_attribute((__format__(__printf__, 1, 2))) - lzma_attribute((__noreturn__)); +tuklib_attr_noreturn +lzma_attribute((__format__(__printf__, 1, 2))) +extern void message_fatal(const char *fmt, ...); /// Print an error message that an internal error occurred and exit with /// EXIT_ERROR. -extern void message_bug(void) lzma_attribute((__noreturn__)); +tuklib_attr_noreturn +extern void message_bug(void); /// Print a message that establishing signal handlers failed, and exit with /// exit status ERROR. -extern void message_signal_handler(void) lzma_attribute((__noreturn__)); +tuklib_attr_noreturn +extern void message_signal_handler(void); /// Convert lzma_ret to a string. @@ -100,11 +102,13 @@ extern void message_try_help(void); /// Prints the version number to stdout and exits with exit status SUCCESS. -extern void message_version(void) lzma_attribute((__noreturn__)); +tuklib_attr_noreturn +extern void message_version(void); /// Print the help message. -extern void message_help(bool long_help) lzma_attribute((__noreturn__)); +tuklib_attr_noreturn +extern void message_help(bool long_help); /// Prints a help message specifically for using the --filters and diff --git a/src/xz/options.c b/src/xz/options.c index f4662131..4d5e899c 100644 --- a/src/xz/options.c +++ b/src/xz/options.c @@ -241,7 +241,8 @@ enum { }; -static void lzma_attribute((__noreturn__)) +tuklib_attr_noreturn +static void error_lzma_preset(const char *valuestr) { message_fatal(_("Unsupported LZMA1/LZMA2 preset: %s"), valuestr); diff --git a/src/xz/util.h b/src/xz/util.h index 3fac8961..6d7e1481 100644 --- a/src/xz/util.h +++ b/src/xz/util.h @@ -19,8 +19,8 @@ /// \brief Safe realloc() that never returns NULL -extern void *xrealloc(void *ptr, size_t size) - lzma_attr_alloc_size(2); +lzma_attr_alloc_size(2) +extern void *xrealloc(void *ptr, size_t size); /// \brief Safe strdup() that never returns NULL @@ -101,8 +101,8 @@ extern const char *uint64_to_nicestr(uint64_t value, /// /// A maximum of *left bytes is written starting from *pos. *pos and *left /// are updated accordingly. -extern void my_snprintf(char **pos, size_t *left, const char *fmt, ...) - lzma_attribute((__format__(__printf__, 3, 4))); +lzma_attribute((__format__(__printf__, 3, 4))) +extern void my_snprintf(char **pos, size_t *left, const char *fmt, ...); /// \brief Test if stdin is a terminal -- cgit v1.2.3