https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61389
Bug ID: 61389 Summary: libcpp diagnostics shouldn't talk about ISO C99 for C++ input files Product: gcc Version: 4.10.0 Status: UNCONFIRMED Keywords: diagnostic Severity: normal Priority: P3 Component: preprocessor Assignee: unassigned at gcc dot gnu.org Reporter: redi at gcc dot gnu.org #define V(A, ...) __VA_ARGS__ void f() { V(1); } $ g++ v.cc -pedantic -c v.cc:1:14: warning: anonymous variadic macros were introduced in C99 [-Wvariadic-macros] #define V(A, ...) __VA_ARGS__ ^ v.cc:3:5: warning: ISO C99 requires rest arguments to be used [enabled by default] V(1); ^ v.cc:3:5: warning: invoking macro V argument 2: empty macro arguments are undefined in ISO C90 and ISO C++98 [enabled by default] 1) The reference to C99 is not relevant for C++ 2) the term "rest arguments" is not defined by any standard, or AFAICT the GCC docs, and is confusing Similarly: $ g++ -pedantic -c v.cc -std=c++11 v.cc:1:13: warning: ISO C99 requires whitespace after the macro name [enabled by default] #define PLUS+ ^ This should say C++11 no C99