diff build_dir/host/coreutils-9.3/lib/error.in.h /Volumes/tony/openwrt/build_dir/host/coreutils-9.4/lib/error.in.h

2c2
<    Copyright (C) 1995-1997, 2003, 2006, 2008-2023 Free Software Foundation,
---
>    Copyright (C) 1995-1997, 2003, 2006, 2008-2024 Free Software Foundation,
21,23c21,23
< #if __GNUC__ >= 3
< @PRAGMA_SYSTEM_HEADER@
< #endif
---
> /* No @PRAGMA_SYSTEM_HEADER@ here, because it would prevent
>    -Wimplicit-fallthrough warnings for missing FALLTHROUGH after error(...)
>    or error_at_line(...) invocations.  */
32a33,41
> /* This file uses _GL_ATTRIBUTE_ALWAYS_INLINE, _GL_ATTRIBUTE_FORMAT,
>   _GL_ATTRIBUTE_MAYBE_UNUSED.  */
> #if !_GL_CONFIG_H_INCLUDED
>  #error "Please include config.h first."
> #endif
>
> /* Get 'unreachable'.  */
> #include <stddef.h>
>
43a53,81
> /* Helper macro for supporting the compiler's control flow analysis better.
>    It evaluates its arguments only once.
>    Test case: Compile copy-file.c with "gcc -Wimplicit-fallthrough".  */
> #if defined __GNUC__ || defined __clang__
> /* Use 'unreachable' to tell the compiler when the function call does not
>    return.  */
> # define __gl_error_call1(function, status, ...) \
>     ((function) (status, __VA_ARGS__), \
>      (status) != 0 ? unreachable () : (void) 0)
> /* If STATUS is a not a constant, the function call may or may not return;
>    therefore -Wimplicit-fallthrough will produce a warning.  Use a compound
>    statement in order to evaluate STATUS only once.
>    If STATUS is a constant, we don't use a compound statement, because that
>    would trigger a -Wimplicit-fallthrough warning even when STATUS is != 0,
>    when not optimizing.  This causes STATUS to be evaluated twice, but
>    that's OK since it does not have side effects.  */
> # define __gl_error_call(function, status, ...)                 \
>     (__builtin_constant_p (status)                              \
>      ? __gl_error_call1 (function, status, __VA_ARGS__)         \
>      : __extension__                                            \
>        ({                                                       \
>          int const __errstatus = status;                        \
>          __gl_error_call1 (function, __errstatus, __VA_ARGS__); \
>        }))
> #else
> # define __gl_error_call(function, status, ...) \
>     (function) (status, __VA_ARGS__)
> #endif
>
60a99,103
> # ifndef _GL_NO_INLINE_ERROR
> #  undef error
> #  define error(status, ...) \
>      __gl_error_call (rpl_error, status, __VA_ARGS__)
> # endif
68a112,135
> # ifndef _GL_NO_INLINE_ERROR
> #  ifdef error
> /* Only gcc ≥ 4.7 has __builtin_va_arg_pack.  */
> #   if _GL_GNUC_PREREQ (4, 7)
> #    pragma GCC diagnostic push
> #    pragma GCC diagnostic ignored "-Wattributes"
> _GL_ATTRIBUTE_MAYBE_UNUSED
> static void
> _GL_ATTRIBUTE_ALWAYS_INLINE
> _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_ERROR, 3, 4))
> _gl_inline_error (int __status, int __errnum, const char *__format, ...)
> {
>   return error (__status, __errnum, __format, __builtin_va_arg_pack ());
> }
> #    pragma GCC diagnostic pop
> #    undef error
> #    define error(status, ...) \
>        __gl_error_call (_gl_inline_error, status, __VA_ARGS__)
> #   endif
> #  else
> #   define error(status, ...) \
>       __gl_error_call (error, status, __VA_ARGS__)
> #  endif
> # endif
87a155,159
> # ifndef _GL_NO_INLINE_ERROR
> #  undef error_at_line
> #  define error_at_line(status, ...) \
>      __gl_error_call (rpl_error_at_line, status, __VA_ARGS__)
> # endif
97a170,195
> # ifndef _GL_NO_INLINE_ERROR
> #  ifdef error_at_line
> /* Only gcc ≥ 4.7 has __builtin_va_arg_pack.  */
> #   if _GL_GNUC_PREREQ (4, 7)
> #    pragma GCC diagnostic push
> #    pragma GCC diagnostic ignored "-Wattributes"
> _GL_ATTRIBUTE_MAYBE_UNUSED
> static void
> _GL_ATTRIBUTE_ALWAYS_INLINE
> _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_ERROR, 5, 6))
> _gl_inline_error_at_line (int __status, int __errnum, const char *__filename,
>                           unsigned int __lineno, const char *__format, ...)
> {
>   return error_at_line (__status, __errnum, __filename, __lineno, __format,
>                         __builtin_va_arg_pack ());
> }
> #    pragma GCC diagnostic pop
> #    undef error_at_line
> #    define error_at_line(status, ...) \
>        __gl_error_call (_gl_inline_error_at_line, status, __VA_ARGS__)
> #   endif
> #  else
> #   define error_at_line(status, ...) \
>       __gl_error_call (error_at_line, status, __VA_ARGS__)
> #  endif
> # endif
