Index: libcpp/macro.c =================================================================== --- libcpp/macro.c (revision 209470) +++ libcpp/macro.c (working copy) @@ -2800,8 +2800,7 @@ parse_params (cpp_reader *pfile, cpp_mac (pfile, CPP_W_VARIADIC_MACROS, "anonymous variadic macros were introduced in C99"); } - else if (CPP_OPTION (pfile, cpp_pedantic) - && CPP_OPTION (pfile, warn_variadic_macros)) + else if (CPP_OPTION (pfile, warn_variadic_macros)) cpp_pedwarning (pfile, CPP_W_VARIADIC_MACROS, "ISO C does not permit named variadic macros"); Index: gcc/c-family/c-opts.c =================================================================== --- gcc/c-family/c-opts.c (revision 209470) +++ gcc/c-family/c-opts.c (working copy) @@ -396,6 +396,10 @@ c_common_handle_option (size_t scode, co cpp_opts->cpp_warn_long_long = value; break; + case OPT_Wvariadic_macros: + cpp_opts->warn_variadic_macros = value; + break; + case OPT_Wmissing_include_dirs: cpp_opts->warn_missing_include_dirs = value; break; @@ -1227,8 +1231,9 @@ sanitize_cpp_opts (void) /* Similarly with -Wno-variadic-macros. No check for c99 here, since this also turns off warnings about GCCs extension. */ - cpp_opts->warn_variadic_macros - = cpp_warn_variadic_macros && (pedantic || warn_traditional); + if (cpp_warn_variadic_macros == -1) + cpp_warn_variadic_macros = pedantic || warn_traditional; + cpp_opts->warn_variadic_macros = cpp_warn_variadic_macros; /* If we're generating preprocessor output, emit current directory if explicitly requested or if debugging information is enabled. Index: gcc/c-family/c.opt =================================================================== --- gcc/c-family/c.opt (revision 209470) +++ gcc/c-family/c.opt (working copy) @@ -785,7 +785,7 @@ C ObjC C++ ObjC++ Var(warn_unused_result Warn if a caller of a function, marked with attribute warn_unused_result, does not use its return value Wvariadic-macros -C ObjC C++ ObjC++ Var(cpp_warn_variadic_macros) Init(1) Warning +C ObjC C++ ObjC++ Var(cpp_warn_variadic_macros) Init(-1) Warning Warn about using variadic macros Wvarargs