===================================================================
@@ -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");
===================================================================
@@ -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.
===================================================================
@@ -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