Patchwork [fortran] Fix PR 54033, problems with -I, with test cases

login
register
mail settings
Submitter Thomas Koenig
Date Aug. 2, 2012, 8:08 p.m.
Message ID <501ADE29.2000206@netcologne.de>
Download mbox | patch
Permalink /patch/174807/
State New
Headers show

Comments

Thomas Koenig - Aug. 2, 2012, 8:08 p.m.
Hi Tobias,

 > I am not sure whether it is the best solution, but one possibility would
> be to ignore -fintrinsic-modules-path for the warning. (That assumes
> that the warning is (almost) never needed for an installed compiler.)

I think this is the right approach.  The attached patch does this.
Regression-tested with the finclude directory from the installation.

OK for trunk?

	Thomas

2012-08-02  Thomas K├Ânig  <tkoenig@gcc.gnu.org>

         PR fortran/54033
         * scanner.c (add_path_to_list):  New argument warn.  Don't
         warn if it is true.
         (gfc_add_include_path):  Warn if directory is missing.
         (gfc_add_intrinsic_modules_path):  Do not warn if directory
         is missing.
         * optinons.c (gfc_handle_option):  Do not add directory
         for intrinsic modules to normal include path.
Thomas Koenig - Aug. 3, 2012, 5:09 p.m.
Hi,

> OK for trunk?

I will be on holiday starting tomorrow, so I would like to commit
this today, if possible (with a mistake in the ChangeLog noted
by Uros fixed.  Thanks!)

If not, somebody please commit this (or another fix).

Thomas
H.J. Lu - Aug. 4, 2012, 5:31 p.m.
On Fri, Aug 3, 2012 at 10:09 AM, Thomas Koenig <tkoenig@netcologne.de> wrote:
> Hi,
>
>> OK for trunk?
>
>
> I will be on holiday starting tomorrow, so I would like to commit
> this today, if possible (with a mistake in the ChangeLog noted
> by Uros fixed.  Thanks!)
>
> If not, somebody please commit this (or another fix).
>

I will commit it after verifying that it fixes the problem.

Thanks.

Patch

Index: scanner.c
===================================================================
--- scanner.c	(Revision 190054)
+++ scanner.c	(Arbeitskopie)
@@ -307,7 +307,7 @@  gfc_scanner_done_1 (void)
 
 static void
 add_path_to_list (gfc_directorylist **list, const char *path,
-		  bool use_for_modules, bool head)
+		  bool use_for_modules, bool head, bool warn)
 {
   gfc_directorylist *dir;
   const char *p;
@@ -324,8 +324,11 @@  add_path_to_list (gfc_directorylist **list, const
 	gfc_warning_now ("Include directory \"%s\": %s", path,
 			 xstrerror(errno));
       else
-	/* FIXME:  Also support -Wmissing-include-dirs.  */
-	gfc_warning_now ("Nonexistent include directory \"%s\"", path);
+	{
+	  /* FIXME:  Also support -Wmissing-include-dirs.  */
+	  if (warn)
+	    gfc_warning_now ("Nonexistent include directory \"%s\"", path);
+	}
       return;
     }
   else if (!S_ISDIR (st.st_mode))
@@ -363,7 +366,7 @@  add_path_to_list (gfc_directorylist **list, const
 void
 gfc_add_include_path (const char *path, bool use_for_modules, bool file_dir)
 {
-  add_path_to_list (&include_dirs, path, use_for_modules, file_dir);
+  add_path_to_list (&include_dirs, path, use_for_modules, file_dir, true);
 
   /* For '#include "..."' these directories are automatically searched.  */
   if (!file_dir)
@@ -374,7 +377,7 @@  gfc_add_include_path (const char *path, bool use_f
 void
 gfc_add_intrinsic_modules_path (const char *path)
 {
-  add_path_to_list (&intrinsic_modules_dirs, path, true, false);
+  add_path_to_list (&intrinsic_modules_dirs, path, true, false, false);
 }
 
 
Index: options.c
===================================================================
--- options.c	(Revision 189754)
+++ options.c	(Arbeitskopie)
@@ -819,7 +819,6 @@  gfc_handle_option (size_t scode, const char *arg,
       break;
 
     case OPT_fintrinsic_modules_path:
-      gfc_add_include_path (arg, false, false);
       gfc_add_intrinsic_modules_path (arg);
       break;