Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

GCC compiler warning flag for zero variadic macro arguments

Tags:

c++

gcc

What is the compiler warning flag for zero variadic macro arguments in GCC (I am using GCC 5.3.0)?

The warning is triggered by code like this

// for illustration purposes only:
int foo(int i) { return 0; };
#define FOO(A, ...) foo(A, ##__VA_ARGS__)
FOO(1);
      ^  warning: ISO C++11 requires at least one argument for the "..." in a variadic macro

but the warning doesn't indicate which flag is used to enable/disable the warning (this is typically shown in square brackets [-Wwarning-flag-name]).

In clang it is -Wgnu-zero-variadic-macro-arguments. I haven't been able to find anything like that in the warning documentation of gcc-5.3.0.

I've tried -Wgnu-zero-variadic-macro-arguments, -Wvarargs, -Wno-variadic-macros (thanks to @ Revolver_Ocelot) but none of these is in charge of this warning.

like image 728
gnzlbg Avatar asked Jul 22 '26 14:07

gnzlbg


1 Answers

The warning flag that is causing the issue is -Wpedantic. This is because omitting variadic arguments is illegal and it requires a diagnostic. A warning satisfies that requirement.

like image 115
NathanOliver Avatar answered Jul 24 '26 04:07

NathanOliver



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!