Fix bug with -MM -MG.
authorJames E Wilson <wilson@specifixinc.com>
Fri, 21 Oct 2005 17:54:20 +0000 (10:54 -0700)
committerJim Wilson <wilson@gcc.gnu.org>
Fri, 21 Oct 2005 17:54:20 +0000 (10:54 -0700)
PR preprocessor/15220
* files.c (_cpp_find_file): New parameter angle_brackets.  Fix all
callers.  Pass to open_file_failed.
(open_file_failed): New parameter angle_brackets.  Fix all callers.
Use in print_dep assignment.
* init.c (cpp_read_main_file): Pass additional arg to _cpp_find_file.
* internal.h (_cpp_find_file): Add new parm to declaration.

From-SVN: r105757

libcpp/ChangeLog
libcpp/files.c
libcpp/init.c
libcpp/internal.h

index 1331bdeb39172413ee6933020bef3d03c5f973f4..766e5bf21d4d2c048cbc6ae3c4608e68297ccf06 100644 (file)
@@ -1,3 +1,13 @@
+2005-10-14  James E Wilson  <wilson@specifix.com>
+
+       PR preprocessor/15220
+       * files.c (_cpp_find_file): New parameter angle_brackets.  Fix all
+       callers.  Pass to open_file_failed.
+       (open_file_failed): New parameter angle_brackets.  Fix all callers.
+       Use in print_dep assignment.
+       * init.c (cpp_read_main_file): Pass additional arg to _cpp_find_file.
+       * internal.h (_cpp_find_file): Add new parm to declaration.
+       
 2005-10-08  Kazu Hirata  <kazu@codesourcery.com>
 
        * configure.ac: Require 64-bit int for arm*-*-*eabi*.
index 779fec7ca63202e149c034185f01ffd77c8efa06..3951515da393e5bed90d38c2f441db9ed9dc5333 100644 (file)
@@ -158,7 +158,7 @@ static bool should_stack_file (cpp_reader *, _cpp_file *file, bool import);
 static struct cpp_dir *search_path_head (cpp_reader *, const char *fname,
                                 int angle_brackets, enum include_type);
 static const char *dir_name_of_file (_cpp_file *file);
-static void open_file_failed (cpp_reader *pfile, _cpp_file *file);
+static void open_file_failed (cpp_reader *pfile, _cpp_file *file, int);
 static struct file_hash_entry *search_cache (struct file_hash_entry *head,
                                             const cpp_dir *start_dir);
 static _cpp_file *make_cpp_file (cpp_reader *, cpp_dir *, const char *fname);
@@ -331,7 +331,7 @@ find_file_in_dir (cpp_reader *pfile, _cpp_file *file, bool *invalid_pch)
 
       if (file->err_no != ENOENT)
        {
-         open_file_failed (pfile, file);
+         open_file_failed (pfile, file, 0);
          return true;
        }
 
@@ -391,7 +391,7 @@ _cpp_find_failed (_cpp_file *file)
    to open_file().
 */
 _cpp_file *
-_cpp_find_file (cpp_reader *pfile, const char *fname, cpp_dir *start_dir, bool fake)
+_cpp_find_file (cpp_reader *pfile, const char *fname, cpp_dir *start_dir, bool fake, int angle_brackets)
 {
   struct file_hash_entry *entry, **hash_slot;
   _cpp_file *file;
@@ -433,7 +433,7 @@ _cpp_find_file (cpp_reader *pfile, const char *fname, cpp_dir *start_dir, bool f
              return file;
            }
 
-         open_file_failed (pfile, file);
+         open_file_failed (pfile, file, angle_brackets);
          if (invalid_pch)
            {
              cpp_error (pfile, CPP_DL_ERROR,
@@ -575,7 +575,7 @@ read_file (cpp_reader *pfile, _cpp_file *file)
 
   if (file->fd == -1 && !open_file (file))
     {
-      open_file_failed (pfile, file);
+      open_file_failed (pfile, file, 0);
       return false;
     }
 
@@ -817,7 +817,7 @@ _cpp_stack_include (cpp_reader *pfile, const char *fname, int angle_brackets,
   if (!dir)
     return false;
 
-  file = _cpp_find_file (pfile, fname, dir, false);
+  file = _cpp_find_file (pfile, fname, dir, false, angle_brackets);
 
   /* Compensate for the increment in linemap_add.  In the case of a
      normal #include, we're currently at the start of the line
@@ -834,10 +834,10 @@ _cpp_stack_include (cpp_reader *pfile, const char *fname, int angle_brackets,
 
 /* Could not open FILE.  The complication is dependency output.  */
 static void
-open_file_failed (cpp_reader *pfile, _cpp_file *file)
+open_file_failed (cpp_reader *pfile, _cpp_file *file, int angle_brackets)
 {
   int sysp = pfile->line_table->highest_line > 1 && pfile->buffer ? pfile->buffer->sysp : 0;
-  bool print_dep = CPP_OPTION (pfile, deps.style) > !!sysp;
+  bool print_dep = CPP_OPTION (pfile, deps.style) > (angle_brackets || !!sysp);
 
   errno = file->err_no;
   if (print_dep && CPP_OPTION (pfile, deps.missing_files) && errno == ENOENT)
@@ -1020,7 +1020,7 @@ _cpp_cleanup_files (cpp_reader *pfile)
 void
 _cpp_fake_include (cpp_reader *pfile, const char *fname)
 {
-  _cpp_find_file (pfile, fname, pfile->buffer->file->dir, true);
+  _cpp_find_file (pfile, fname, pfile->buffer->file->dir, true, 0);
 }
 
 /* Not everyone who wants to set system-header-ness on a buffer can
@@ -1105,7 +1105,7 @@ _cpp_compare_file_date (cpp_reader *pfile, const char *fname,
   if (!dir)
     return -1;
 
-  file = _cpp_find_file (pfile, fname, dir, false);
+  file = _cpp_find_file (pfile, fname, dir, false, angle_brackets);
   if (file->err_no)
     return -1;
 
@@ -1479,7 +1479,7 @@ _cpp_save_file_entries (cpp_reader *pfile, FILE *fp)
 
          if (!open_file (f))
            {
-             open_file_failed (pfile, f);
+             open_file_failed (pfile, f, 0);
              return false;
            }
          ff = fdopen (f->fd, "rb");
index 8d564c933f461b2b1d57bfd4a4a332952f3a1d09..3074f96b5c8b9905db5232c0c9e8a43657e6cfd3 100644 (file)
@@ -467,7 +467,7 @@ cpp_read_main_file (cpp_reader *pfile, const char *fname)
     }
 
   pfile->main_file
-    = _cpp_find_file (pfile, fname, &pfile->no_search_path, false);
+    = _cpp_find_file (pfile, fname, &pfile->no_search_path, false, 0);
   if (_cpp_find_failed (pfile->main_file))
     return NULL;
 
index a751c45df62d61b10c75846ce5438b38f0ccc712..4aa6dcc510b850cf2f1d28ba02dea4ff00b2c9f7 100644 (file)
@@ -503,8 +503,8 @@ extern void _cpp_destroy_hashtable (cpp_reader *);
 
 /* In files.c */
 typedef struct _cpp_file _cpp_file;
-extern _cpp_file *_cpp_find_file (cpp_reader *, const char *fname,
-                                 cpp_dir *start_dir, bool fake);
+extern _cpp_file *_cpp_find_file (cpp_reader *, const char *, cpp_dir *,
+                                 bool, int);
 extern bool _cpp_find_failed (_cpp_file *);
 extern void _cpp_mark_file_once_only (cpp_reader *, struct _cpp_file *);
 extern void _cpp_fake_include (cpp_reader *, const char *);