Build failure with 1.9.13 with GCC 13.0.1_pre20230212 (../../include/sudo_fatal.h:174:31: error: expected identifier or '(' before 'void') · Issue #239 · sudo-project/sudo (original) (raw)

This is with and without defec5d applied, fwiw.

Clang 16.0.0_rc2 and GCC 12.2.1_p20230211 are fine, but GCC 13.0.1_pre20230212 isn't. Looking into it more now.

Build errors excerpt:

In file included from ./gidlist.c:31:
../../include/sudo_fatal.h:174:1: warning: 'noreturn' attribute ignored [-Wattributes]
  174 | sudo_dso_public sudo_noreturn void sudo_fatal_nodebug_v1(const char *fmt, ...) sudo_printf0like(1, 2);
      | ^~~~~~~~~~~~~~~
../../include/sudo_fatal.h:174:31: error: expected identifier or '(' before 'void'
  174 | sudo_dso_public sudo_noreturn void sudo_fatal_nodebug_v1(const char *fmt, ...) sudo_printf0like(1, 2);
      |                               ^~~~
../../include/sudo_fatal.h:175:1: warning: 'noreturn' attribute ignored [-Wattributes]
  175 | sudo_dso_public sudo_noreturn void sudo_fatalx_nodebug_v1(const char *fmt, ...) sudo_printflike(1, 2);
      | ^~~~~~~~~~~~~~~
../../include/sudo_fatal.h:175:31: error: expected identifier or '(' before 'void'
  175 | sudo_dso_public sudo_noreturn void sudo_fatalx_nodebug_v1(const char *fmt, ...) sudo_printflike(1, 2);
      |                               ^~~~
../../include/sudo_fatal.h:176:1: warning: 'noreturn' attribute ignored [-Wattributes]
  176 | sudo_dso_public sudo_noreturn void sudo_gai_fatal_nodebug_v1(int errnum, const char *fmt, ...) sudo_printflike(2, 3);
      | ^~~~~~~~~~~~~~~
../../include/sudo_fatal.h:176:31: error: expected identifier or '(' before 'void'
  176 | sudo_dso_public sudo_noreturn void sudo_gai_fatal_nodebug_v1(int errnum, const char *fmt, ...) sudo_printflike(2, 3);
      |                               ^~~~
../../include/sudo_fatal.h:177:1: warning: 'noreturn' attribute ignored [-Wattributes]
  177 | sudo_dso_public sudo_noreturn void sudo_vfatal_nodebug_v1(const char *fmt, va_list ap) sudo_printf0like(1, 0);
      | ^~~~~~~~~~~~~~~
../../include/sudo_fatal.h:177:31: error: expected identifier or '(' before 'void'
  177 | sudo_dso_public sudo_noreturn void sudo_vfatal_nodebug_v1(const char *fmt, va_list ap) sudo_printf0like(1, 0);
      |                               ^~~~
../../include/sudo_fatal.h:178:1: warning: 'noreturn' attribute ignored [-Wattributes]
  178 | sudo_dso_public sudo_noreturn void sudo_vfatalx_nodebug_v1(const char *fmt, va_list ap) sudo_printflike(1, 0);
      | ^~~~~~~~~~~~~~~
../../include/sudo_fatal.h:178:31: error: expected identifier or '(' before 'void'
  178 | sudo_dso_public sudo_noreturn void sudo_vfatalx_nodebug_v1(const char *fmt, va_list ap) sudo_printflike(1, 0);
      |                               ^~~~
../../include/sudo_fatal.h:179:1: warning: 'noreturn' attribute ignored [-Wattributes]
  179 | sudo_dso_public sudo_noreturn void sudo_gai_vfatal_nodebug_v1(int errnum, const char *fmt, va_list ap) sudo_printflike(2, 0);
      | ^~~~~~~~~~~~~~~
../../include/sudo_fatal.h:179:31: error: expected identifier or '(' before 'void'
  179 | sudo_dso_public sudo_noreturn void sudo_gai_vfatal_nodebug_v1(int errnum, const char *fmt, va_list ap) sudo_printflike(2, 0);
      |                               ^~~~
make[1]: *** [Makefile:918: gidlist.lo] Error 1
make[1]: *** Waiting for unfinished jobs....
In file included from ./mkdir_parents.c:42:
../../include/sudo_fatal.h:174:1: warning: 'noreturn' attribute ignored [-Wattributes]
  174 | sudo_dso_public sudo_noreturn void sudo_fatal_nodebug_v1(const char *fmt, ...) sudo_printf0like(1, 2);
      | ^~~~~~~~~~~~~~~
../../include/sudo_fatal.h:174:31: error: expected identifier or '(' before 'void'
  174 | sudo_dso_public sudo_noreturn void sudo_fatal_nodebug_v1(const char *fmt, ...) sudo_printf0like(1, 2);
      |                               ^~~~
../../include/sudo_fatal.h:175:1: warning: 'noreturn' attribute ignored [-Wattributes]
  175 | sudo_dso_public sudo_noreturn void sudo_fatalx_nodebug_v1(const char *fmt, ...) sudo_printflike(1, 2);
      | ^~~~~~~~~~~~~~~
../../include/sudo_fatal.h:175:31: error: expected identifier or '(' before 'void'
  175 | sudo_dso_public sudo_noreturn void sudo_fatalx_nodebug_v1(const char *fmt, ...) sudo_printflike(1, 2);
      |                               ^~~~
../../include/sudo_fatal.h:176:1: warning: 'noreturn' attribute ignored [-Wattributes]
  176 | sudo_dso_public sudo_noreturn void sudo_gai_fatal_nodebug_v1(int errnum, const char *fmt, ...) sudo_printflike(2, 3);
      | ^~~~~~~~~~~~~~~
../../include/sudo_fatal.h:176:31: error: expected identifier or '(' before 'void'
  176 | sudo_dso_public sudo_noreturn void sudo_gai_fatal_nodebug_v1(int errnum, const char *fmt, ...) sudo_printflike(2, 3);
      |                               ^~~~
../../include/sudo_fatal.h:177:1: warning: 'noreturn' attribute ignored [-Wattributes]
  177 | sudo_dso_public sudo_noreturn void sudo_vfatal_nodebug_v1(const char *fmt, va_list ap) sudo_printf0like(1, 0);
      | ^~~~~~~~~~~~~~~
../../include/sudo_fatal.h:177:31: error: expected identifier or '(' before 'void'
  177 | sudo_dso_public sudo_noreturn void sudo_vfatal_nodebug_v1(const char *fmt, va_list ap) sudo_printf0like(1, 0);
      |                               ^~~~
../../include/sudo_fatal.h:178:1: warning: 'noreturn' attribute ignored [-Wattributes]
  178 | sudo_dso_public sudo_noreturn void sudo_vfatalx_nodebug_v1(const char *fmt, va_list ap) sudo_printflike(1, 0);
      | ^~~~~~~~~~~~~~~
../../include/sudo_fatal.h:178:31: error: expected identifier or '(' before 'void'
  178 | sudo_dso_public sudo_noreturn void sudo_vfatalx_nodebug_v1(const char *fmt, va_list ap) sudo_printflike(1, 0);
      |                               ^~~~
../../include/sudo_fatal.h:179:1: warning: 'noreturn' attribute ignored [-Wattributes]
  179 | sudo_dso_public sudo_noreturn void sudo_gai_vfatal_nodebug_v1(int errnum, const char *fmt, va_list ap) sudo_printflike(2, 0);
      | ^~~~~~~~~~~~~~~
../../include/sudo_fatal.h:179:31: error: expected identifier or '(' before 'void'
  179 | sudo_dso_public sudo_noreturn void sudo_gai_vfatal_nodebug_v1(int errnum, const char *fmt, va_list ap) sudo_printflike(2, 0);
      |                               ^~~~
make[1]: *** [Makefile:1104: mkdir_parents.lo] Error 1
In file included from ./fatal.c:43:
../../include/sudo_fatal.h:174:1: warning: 'noreturn' attribute ignored [-Wattributes]
  174 | sudo_dso_public sudo_noreturn void sudo_fatal_nodebug_v1(const char *fmt, ...) sudo_printf0like(1, 2);
      | ^~~~~~~~~~~~~~~
../../include/sudo_fatal.h:174:31: error: expected identifier or '(' before 'void'
  174 | sudo_dso_public sudo_noreturn void sudo_fatal_nodebug_v1(const char *fmt, ...) sudo_printf0like(1, 2);
      |                               ^~~~
../../include/sudo_fatal.h:175:1: warning: 'noreturn' attribute ignored [-Wattributes]
  175 | sudo_dso_public sudo_noreturn void sudo_fatalx_nodebug_v1(const char *fmt, ...) sudo_printflike(1, 2);
      | ^~~~~~~~~~~~~~~
../../include/sudo_fatal.h:175:31: error: expected identifier or '(' before 'void'
  175 | sudo_dso_public sudo_noreturn void sudo_fatalx_nodebug_v1(const char *fmt, ...) sudo_printflike(1, 2);
      |                               ^~~~
../../include/sudo_fatal.h:176:1: warning: 'noreturn' attribute ignored [-Wattributes]
  176 | sudo_dso_public sudo_noreturn void sudo_gai_fatal_nodebug_v1(int errnum, const char *fmt, ...) sudo_printflike(2, 3);
      | ^~~~~~~~~~~~~~~
../../include/sudo_fatal.h:176:31: error: expected identifier or '(' before 'void'
  176 | sudo_dso_public sudo_noreturn void sudo_gai_fatal_nodebug_v1(int errnum, const char *fmt, ...) sudo_printflike(2, 3);
      |                               ^~~~
../../include/sudo_fatal.h:177:1: warning: 'noreturn' attribute ignored [-Wattributes]
  177 | sudo_dso_public sudo_noreturn void sudo_vfatal_nodebug_v1(const char *fmt, va_list ap) sudo_printf0like(1, 0);
      | ^~~~~~~~~~~~~~~
../../include/sudo_fatal.h:177:31: error: expected identifier or '(' before 'void'
  177 | sudo_dso_public sudo_noreturn void sudo_vfatal_nodebug_v1(const char *fmt, va_list ap) sudo_printf0like(1, 0);
      |                               ^~~~
../../include/sudo_fatal.h:178:1: warning: 'noreturn' attribute ignored [-Wattributes]
  178 | sudo_dso_public sudo_noreturn void sudo_vfatalx_nodebug_v1(const char *fmt, va_list ap) sudo_printflike(1, 0);
      | ^~~~~~~~~~~~~~~
../../include/sudo_fatal.h:178:31: error: expected identifier or '(' before 'void'
  178 | sudo_dso_public sudo_noreturn void sudo_vfatalx_nodebug_v1(const char *fmt, va_list ap) sudo_printflike(1, 0);
      |                               ^~~~
../../include/sudo_fatal.h:179:1: warning: 'noreturn' attribute ignored [-Wattributes]
  179 | sudo_dso_public sudo_noreturn void sudo_gai_vfatal_nodebug_v1(int errnum, const char *fmt, va_list ap) sudo_printflike(2, 0);
      | ^~~~~~~~~~~~~~~
../../include/sudo_fatal.h:179:31: error: expected identifier or '(' before 'void'
  179 | sudo_dso_public sudo_noreturn void sudo_gai_vfatal_nodebug_v1(int errnum, const char *fmt, va_list ap) sudo_printflike(2, 0);
      |                               ^~~~
In file included from ./json.c:38:
../../include/sudo_fatal.h:174:1: warning: 'noreturn' attribute ignored [-Wattributes]
  174 | sudo_dso_public sudo_noreturn void sudo_fatal_nodebug_v1(const char *fmt, ...) sudo_printf0like(1, 2);
      | ^~~~~~~~~~~~~~~
../../include/sudo_fatal.h:174:31: error: expected identifier or '(' before 'void'
  174 | sudo_dso_public sudo_noreturn void sudo_fatal_nodebug_v1(const char *fmt, ...) sudo_printf0like(1, 2);
      |                               ^~~~
../../include/sudo_fatal.h:175:1: warning: 'noreturn' attribute ignored [-Wattributes]
  175 | sudo_dso_public sudo_noreturn void sudo_fatalx_nodebug_v1(const char *fmt, ...) sudo_printflike(1, 2);
      | ^~~~~~~~~~~~~~~
../../include/sudo_fatal.h:175:31: error: expected identifier or '(' before 'void'
  175 | sudo_dso_public sudo_noreturn void sudo_fatalx_nodebug_v1(const char *fmt, ...) sudo_printflike(1, 2);
      |                               ^~~~
../../include/sudo_fatal.h:176:1: warning: 'noreturn' attribute ignored [-Wattributes]
  176 | sudo_dso_public sudo_noreturn void sudo_gai_fatal_nodebug_v1(int errnum, const char *fmt, ...) sudo_printflike(2, 3);
      | ^~~~~~~~~~~~~~~
../../include/sudo_fatal.h:176:31: error: expected identifier or '(' before 'void'
  176 | sudo_dso_public sudo_noreturn void sudo_gai_fatal_nodebug_v1(int errnum, const char *fmt, ...) sudo_printflike(2, 3);
      |                               ^~~~
../../include/sudo_fatal.h:177:1: warning: 'noreturn' attribute ignored [-Wattributes]
  177 | sudo_dso_public sudo_noreturn void sudo_vfatal_nodebug_v1(const char *fmt, va_list ap) sudo_printf0like(1, 0);
      | ^~~~~~~~~~~~~~~
../../include/sudo_fatal.h:177:31: error: expected identifier or '(' before 'void'
  177 | sudo_dso_public sudo_noreturn void sudo_vfatal_nodebug_v1(const char *fmt, va_list ap) sudo_printf0like(1, 0);
      |                               ^~~~
../../include/sudo_fatal.h:178:1: warning: 'noreturn' attribute ignored [-Wattributes]
  178 | sudo_dso_public sudo_noreturn void sudo_vfatalx_nodebug_v1(const char *fmt, va_list ap) sudo_printflike(1, 0);
      | ^~~~~~~~~~~~~~~
../../include/sudo_fatal.h:178:31: error: expected identifier or '(' before 'void'
  178 | sudo_dso_public sudo_noreturn void sudo_vfatalx_nodebug_v1(const char *fmt, va_list ap) sudo_printflike(1, 0);
      |                               ^~~~
../../include/sudo_fatal.h:179:1: warning: 'noreturn' attribute ignored [-Wattributes]
  179 | sudo_dso_public sudo_noreturn void sudo_gai_vfatal_nodebug_v1(int errnum, const char *fmt, va_list ap) sudo_printflike(2, 0);
      | ^~~~~~~~~~~~~~~
../../include/sudo_fatal.h:179:31: error: expected identifier or '(' before 'void'
  179 | sudo_dso_public sudo_noreturn void sudo_gai_vfatal_nodebug_v1(int errnum, const char *fmt, va_list ap) sudo_printflike(2, 0);
      |                               ^~~~
./json.c: In function 'json_expand_buf':
../../include/sudo_fatal.h:97:5: warning: implicit declaration of function 'sudo_fatalx_nodebug_v1'; did you mean 'sudo_fatalx_nodebug'? [-Wimplicit-function-declaration]
   97 |     sudo_fatalx_nodebug_v1(__VA_ARGS__);                                       \
      |     ^~~~~~~~~~~~~~~~~~~~~~
./json.c:55:13: note: in expansion of macro 'sudo_fatalx'
   55 |             sudo_fatalx(U_("%s: %s"),
      |             ^~~~~~~~~~~
make[1]: *** [Makefile:712: fatal.lo] Error 1
make[1]: *** [Makefile:1008: json.lo] Error 1
In file included from ./event.c:42:
../../include/sudo_fatal.h:174:1: warning: 'noreturn' attribute ignored [-Wattributes]
  174 | sudo_dso_public sudo_noreturn void sudo_fatal_nodebug_v1(const char *fmt, ...) sudo_printf0like(1, 2);
      | ^~~~~~~~~~~~~~~
../../include/sudo_fatal.h:174:31: error: expected identifier or '(' before 'void'
  174 | sudo_dso_public sudo_noreturn void sudo_fatal_nodebug_v1(const char *fmt, ...) sudo_printf0like(1, 2);
      |                               ^~~~
../../include/sudo_fatal.h:175:1: warning: 'noreturn' attribute ignored [-Wattributes]
  175 | sudo_dso_public sudo_noreturn void sudo_fatalx_nodebug_v1(const char *fmt, ...) sudo_printflike(1, 2);
      | ^~~~~~~~~~~~~~~
../../include/sudo_fatal.h:175:31: error: expected identifier or '(' before 'void'
  175 | sudo_dso_public sudo_noreturn void sudo_fatalx_nodebug_v1(const char *fmt, ...) sudo_printflike(1, 2);
      |                               ^~~~
../../include/sudo_fatal.h:176:1: warning: 'noreturn' attribute ignored [-Wattributes]
  176 | sudo_dso_public sudo_noreturn void sudo_gai_fatal_nodebug_v1(int errnum, const char *fmt, ...) sudo_printflike(2, 3);
      | ^~~~~~~~~~~~~~~
../../include/sudo_fatal.h:176:31: error: expected identifier or '(' before 'void'
  176 | sudo_dso_public sudo_noreturn void sudo_gai_fatal_nodebug_v1(int errnum, const char *fmt, ...) sudo_printflike(2, 3);
      |                               ^~~~
../../include/sudo_fatal.h:177:1: warning: 'noreturn' attribute ignored [-Wattributes]
  177 | sudo_dso_public sudo_noreturn void sudo_vfatal_nodebug_v1(const char *fmt, va_list ap) sudo_printf0like(1, 0);
      | ^~~~~~~~~~~~~~~
../../include/sudo_fatal.h:177:31: error: expected identifier or '(' before 'void'
  177 | sudo_dso_public sudo_noreturn void sudo_vfatal_nodebug_v1(const char *fmt, va_list ap) sudo_printf0like(1, 0);
      |                               ^~~~
../../include/sudo_fatal.h:178:1: warning: 'noreturn' attribute ignored [-Wattributes]
  178 | sudo_dso_public sudo_noreturn void sudo_vfatalx_nodebug_v1(const char *fmt, va_list ap) sudo_printflike(1, 0);
      | ^~~~~~~~~~~~~~~
../../include/sudo_fatal.h:178:31: error: expected identifier or '(' before 'void'
  178 | sudo_dso_public sudo_noreturn void sudo_vfatalx_nodebug_v1(const char *fmt, va_list ap) sudo_printflike(1, 0);
      |                               ^~~~
../../include/sudo_fatal.h:179:1: warning: 'noreturn' attribute ignored [-Wattributes]
  179 | sudo_dso_public sudo_noreturn void sudo_gai_vfatal_nodebug_v1(int errnum, const char *fmt, va_list ap) sudo_printflike(2, 0);
      | ^~~~~~~~~~~~~~~
../../include/sudo_fatal.h:179:31: error: expected identifier or '(' before 'void'
  179 | sudo_dso_public sudo_noreturn void sudo_gai_vfatal_nodebug_v1(int errnum, const char *fmt, va_list ap) sudo_printflike(2, 0);
      |                               ^~~~
make[1]: *** [Makefile:663: event.lo] Error 1
make[1]: Leaving directory '/var/tmp/portage/app-admin/sudo-1.9.13/work/sudo-1.9.13/lib/util'
make: *** [Makefile:108: all] Error 2

Full log: build.log