[PR,preprocessor/51303] Wmissing-include-dirs warnings reported as [enabled by default]
diff mbox

Message ID CAESRpQAx68DPJdpw8Fa5QLn_8MhrzMrgEChOtUX6P0XPdV8--g@mail.gmail.com
State New
Headers show

Commit Message

Manuel López-Ibáñez Aug. 19, 2014, 10:12 p.m. UTC
The fix is almost trivial. Just use the appropriate flags when warning.

Bootstrapped and regression tested on x86_64-linux-gnu.

OK?


gcc/ChangeLog:

2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>

    * incpath.c (remove_duplicates): Use cpp_warning.

gcc/c-family/ChangeLog:

2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>

    * c-common.c (struct reason_option_codes_t option_codes):
    Add CPP_W_MISSING_INCLUDE_DIRS. Sort alphabetically.

gcc/testsuite/ChangeLog:

2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>

    * gcc.dg/cpp/Wmissingdirs.c: Test for the warning option.

Comments

Joseph Myers Aug. 19, 2014, 10:20 p.m. UTC | #1
On Wed, 20 Aug 2014, Manuel López-Ibáñez wrote:

> The fix is almost trivial. Just use the appropriate flags when warning.
> 
> Bootstrapped and regression tested on x86_64-linux-gnu.
> 
> OK?

OK.

Patch
diff mbox

Index: gcc/c-family/c-common.c
===================================================================
--- gcc/c-family/c-common.c	(revision 214136)
+++ gcc/c-family/c-common.c	(working copy)
@@ -9678,27 +9678,28 @@  struct reason_option_codes_t
   const int reason;		/* cpplib message reason.  */
   const int option_code;	/* gcc option that controls this message.  */
 };
 
 static const struct reason_option_codes_t option_codes[] = {
-  {CPP_W_DEPRECATED,			OPT_Wdeprecated},
+  {CPP_W_BUILTIN_MACRO_REDEFINED,	OPT_Wbuiltin_macro_redefined},
   {CPP_W_COMMENTS,			OPT_Wcomment},
-  {CPP_W_TRIGRAPHS,			OPT_Wtrigraphs},
+  {CPP_W_CXX_OPERATOR_NAMES,		OPT_Wc___compat},
+  {CPP_W_DATE_TIME,			OPT_Wdate_time},
+  {CPP_W_DEPRECATED,			OPT_Wdeprecated},
+  {CPP_W_ENDIF_LABELS,			OPT_Wendif_labels},
+  {CPP_W_INVALID_PCH,			OPT_Winvalid_pch},
+  {CPP_W_LITERAL_SUFFIX,		OPT_Wliteral_suffix},
+  {CPP_W_LONG_LONG,			OPT_Wlong_long},
+  {CPP_W_MISSING_INCLUDE_DIRS,          OPT_Wmissing_include_dirs},
   {CPP_W_MULTICHAR,			OPT_Wmultichar},
+  {CPP_W_NORMALIZE,			OPT_Wnormalized_},
   {CPP_W_TRADITIONAL,			OPT_Wtraditional},
-  {CPP_W_LONG_LONG,			OPT_Wlong_long},
-  {CPP_W_ENDIF_LABELS,			OPT_Wendif_labels},
-  {CPP_W_VARIADIC_MACROS,		OPT_Wvariadic_macros},
-  {CPP_W_BUILTIN_MACRO_REDEFINED,	OPT_Wbuiltin_macro_redefined},
+  {CPP_W_TRIGRAPHS,			OPT_Wtrigraphs},
   {CPP_W_UNDEF,				OPT_Wundef},
   {CPP_W_UNUSED_MACROS,			OPT_Wunused_macros},
-  {CPP_W_CXX_OPERATOR_NAMES,		OPT_Wc___compat},
-  {CPP_W_NORMALIZE,			OPT_Wnormalized_},
-  {CPP_W_INVALID_PCH,			OPT_Winvalid_pch},
+  {CPP_W_VARIADIC_MACROS,		OPT_Wvariadic_macros},
   {CPP_W_WARNING_DIRECTIVE,		OPT_Wcpp},
-  {CPP_W_LITERAL_SUFFIX,		OPT_Wliteral_suffix},
-  {CPP_W_DATE_TIME,			OPT_Wdate_time},
   {CPP_W_NONE,				0}
 };
 
 /* Return the gcc option code associated with the reason for a cpp
    message, or 0 if none.  */
Index: gcc/incpath.c
===================================================================
--- gcc/incpath.c	(revision 214136)
+++ gcc/incpath.c	(working copy)
@@ -261,11 +261,12 @@  remove_duplicates (cpp_reader *pfile, st
 	  else
 	    {
 	      /* If -Wmissing-include-dirs is given, warn.  */
 	      cpp_options *opts = cpp_get_options (pfile);
 	      if (opts->warn_missing_include_dirs && cur->user_supplied_p)
-		cpp_errno (pfile, CPP_DL_WARNING, cur->name);
+		cpp_warning (pfile, CPP_W_MISSING_INCLUDE_DIRS, "%s: %s",
+			     cur->name, xstrerror (errno));
 	      reason = REASON_NOENT;
 	    }
 	}
       else if (!S_ISDIR (st.st_mode))
 	cpp_error_with_line (pfile, CPP_DL_WARNING, 0, 0,
Index: gcc/testsuite/gcc.dg/cpp/Wmissingdirs.c
===================================================================
--- gcc/testsuite/gcc.dg/cpp/Wmissingdirs.c	(revision 214136)
+++ gcc/testsuite/gcc.dg/cpp/Wmissingdirs.c	(working copy)
@@ -2,6 +2,6 @@ 
 /* { dg-options "-std=gnu99 -I /jolly/well/better/not/exist -Wmissing-include-dirs" } */
 
 /* Test that -Wmissing-include-dirs issues a warning when a specified
    directory does not exist.  Source Ben Elliston, 2004-05-13.  */
 
-/* { dg-warning "No such file or directory" "-Wmissing-include-dirs" { target *-*-* } 0 } */
+/* { dg-warning "No such file or directory.*Wmissing-include-dirs" "-Wmissing-include-dirs" { target *-*-* } 0 } */