GNOME Bugzilla – Bug 731985
Variadic macros failing to expand if trailing ... is empty
Last modified: 2014-08-21 17:15:31 UTC
With MACRO_EXPANSION=yes, in the following simplified example, the entries for VAR_MACRO1 expand, while the first entry for VAR_MACRO2 does not. The C++ preprocessor considers all of them correct syntax, so the expected result is that each macro would expand. (Thanks for taking a look.) /// \file simpletest.h #define VAR_MACRO1(...) void DemoFunction1(__VA_ARGS__) { } VAR_MACRO1(); VAR_MACRO1(int x); VAR_MACRO1(int x, float y); #define VAR_MACRO2(T, ...) T DemoFunction2(__VA_ARGS__) { } VAR_MACRO2(void); VAR_MACRO2(void, int x); VAR_MACRO2(void, int x, float y); //////////////////// The documentation generated looks like: void DemoFunction1 () void DemoFunction1 (int x) void DemoFunction1 (int x, float y) VAR_MACRO2 (void) void DemoFunction2 (int x) void DemoFunction2 (int x, float y)
Confirmed. Should be fixed in the next GIT update.
This bug was previously marked ASSIGNED, which means it should be fixed in doxygen version 1.8.8. Please verify if this is indeed the case. Reopen the bug if you think it is not fixed and please include any additional information that you think can be relevant (preferrably in the form of a self-contained example).