On Fri, 5 Nov 2021, 01:00 Roy Qu via Gcc, <gcc@gcc.gnu.org> wrote:

> Version: GCC 11.2 (msys2 mingw-w64 X86_64)
> When a macro have more than one arguments, and u call it with no argument,
> gcc will compliant with " only 1 given" instead of " 0 given"
>
> Demo code:
>
> #define TEST(x,y) test(x,y)
> int main() {
> int x=TEST();
> }:
>
> Error message:
> F:/test.cpp:4:20: error: macro "TEST" requires *2* arguments, but only *1*
> given
>
> 4 | int x=TEST();
>
> | ^
>


No, you called it with one argument. An empty token sequence is a valid
macro argument. TEST(,) would be two arguments.

N.B. this is the wrong mailing list. If you want to ask about using GCC you
should use the gcc-help list, or to report bugs you should use the bugzilla
database.

>

Reply via email to