[neil@daikokuya.demon.co.uk: Re: preprocessor/6521: -MG creates dependency with wrong path]

Neil Booth neil@daikokuya.demon.co.uk
Wed May 8 15:03:00 GMT 2002


Forgot to cc: gcc-patches.

Tested with "make libcpp.a" and "make doc", as it's otherwise obvious
and harmless.

Neil.

----- Forwarded message from Neil Booth <neil@daikokuya.demon.co.uk> -----

OK, I've applied this.

Neil.

2002-05-08  Robert Spier <rspier@pobox.com>
	    Neil Booth  <neil@daikokuya.demon.co.uk>

	PR preprocessor/6521
	* cppfiles.c (handle_missing_header): Don't do anything
	different for <> includes.
doc:
	* cppopts.texi: Update documentation for -MG.

Index: cppfiles.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cppfiles.c,v
retrieving revision 1.147
diff -u -p -r1.147 cppfiles.c
--- cppfiles.c	22 Apr 2002 17:48:01 -0000	1.147
+++ cppfiles.c	8 May 2002 21:15:19 -0000
@@ -658,30 +658,7 @@ handle_missing_header (pfile, fname, ang
   int print_dep = CPP_PRINT_DEPS(pfile) > (angle_brackets || pfile->map->sysp);
 
   if (CPP_OPTION (pfile, print_deps_missing_files) && print_dep)
-    {
-      if (!angle_brackets || IS_ABSOLUTE_PATHNAME (fname))
-	deps_add_dep (pfile->deps, fname);
-      else
-	{
-	  /* If requested as a system header, assume it belongs in
-	     the first system header directory.  */
-	  struct search_path *ptr = CPP_OPTION (pfile, bracket_include);
-	  char *p;
-	  int len = 0, fname_len = strlen (fname);
-
-	  if (ptr)
-	    len = ptr->len;
-
-	  p = (char *) alloca (len + fname_len + 2);
-	  if (len)
-	    {
-	      memcpy (p, ptr->name, len);
-	      p[len++] = '/';
-	    }
-	  memcpy (p + len, fname, fname_len + 1);
-	  deps_add_dep (pfile->deps, p);
-	}
-    }
+    deps_add_dep (pfile->deps, fname);
   /* If -M was specified, then don't count this as an error, because
      we can still produce correct output.  Otherwise, we can't produce
      correct output, because there may be dependencies we need inside
Index: doc/cppopts.texi
===================================================================
RCS file: /cvs/gcc/gcc/gcc/doc/cppopts.texi,v
retrieving revision 1.5
diff -u -p -r1.5 cppopts.texi
--- doc/cppopts.texi	7 Apr 2002 03:12:23 -0000	1.5
+++ doc/cppopts.texi	8 May 2002 21:15:22 -0000
@@ -204,10 +204,13 @@ When used with the driver options @optio
 
 @item -MG
 @opindex MG
-When used with @option{-M} or @option{-MM}, @option{-MG} says to treat missing
-header files as generated files and assume they live in the same
-directory as the source file.  It suppresses preprocessed output, as a
-missing header file is ordinarily an error.
+In conjunction with an option such as @option{-M} requesting
+dependency generation, @option{-MG} assumes missing header files are
+generated files and adds them to the dependency list without raising
+an error.  The dependency filename is taken directly from the
+@code{#include} directive without prepending any path.  @option{-MG}
+also suppresses preprocessed output, as a missing header file renders
+this useless.
 
 This feature is used in automatic updating of makefiles.
 

----- End forwarded message -----



More information about the Gcc-patches mailing list