This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: -Wvariadic-macros does not print warning


I didn't attach the patch, I am extremely sorry for the noise.
I am re-posting the mail.
This is a follow up mail to http://gcc.gnu.org/ml/gcc-help/2014-04/msg00096.html
I have attached patch that prints the warning when passed -Wvariadic-macros
(I mostly followed it along lines of -Wlong-long).
OK for trunk ?

[libcpp]
* macro.c (parse_params): Remove condition CPP_OPTION (pfile, cpp_pedantic).

[gcc/c-family]
* c.opt (-Wvariadic-macros): Init(-1) instead of Init(1).
* c-opts.c (c_common_handle_option): Add case OPT_Wvariadic_macros.
               (sanitize_cpp_opts): Check condition for pedantic or
warn_traditional.

Thanks and Regards,
Prathamesh

On Wed, Apr 23, 2014 at 11:30 PM, Prathamesh Kulkarni
<bilbotheelffriend@gmail.com> wrote:
> forgot to add gcc-patches@gcc.gnu.org. Sorry for the double-post.
>
> On Wed, Apr 23, 2014 at 11:28 PM, Prathamesh Kulkarni
> <bilbotheelffriend@gmail.com> wrote:
>> This is a follow up mail to http://gcc.gnu.org/ml/gcc-help/2014-04/msg00096.html
>> I have attached patch that prints the warning when passed -Wvariadic-macros
>> (I mostly followed it along lines of -Wlong-long).
>> OK for trunk ?
>>
>> [libcpp]
>> * macro.c (parse_params): Remove condition CPP_OPTION (pfile, cpp_pedantic).
>>
>> [gcc/c-family]
>> * c.opt (-Wvariadic-macros): Init(-1) instead of Init(1).
>> * c-opts.c (c_common_handle_option): Add case OPT_Wvariadic_macros.
>>                (sanitize_cpp_opts): Check condition for pedantic or
>> warn_traditional.
>>
>> Thanks and Regards,
>> Prathamesh
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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]