[libcpp] Reimplement mkdeps data structures
authorNathan Sidwell <nathan@acm.org>
Tue, 7 May 2019 18:13:57 +0000 (18:13 +0000)
committerNathan Sidwell <nathan@gcc.gnu.org>
Tue, 7 May 2019 18:13:57 +0000 (18:13 +0000)
https://gcc.gnu.org/ml/gcc-patches/2019-05/msg00323.html
* files.c (_cpp_stack_file): Empty filenames aren't dependencies.
* mkdeps.c (deps_add_dep): Assert not empty.

From-SVN: r270978

libcpp/ChangeLog
libcpp/files.c
libcpp/mkdeps.c

index df8da71f3297205bd592be8264c27951b77deea1..1c314ea112dc1b115cede2a098149a8ef9d28494 100644 (file)
@@ -1,5 +1,8 @@
 2019-05-07  Nathan Sidwell  <nathan@acm.org>
 
+       * files.c (_cpp_stack_file): Empty filenames aren't dependencies.
+       * mkdeps.c (deps_add_dep): Assert not empty.
+
        * include/mkdeps.h (deps_write): Add PHONY arg.
        (deps_phony_targets): Delete.
        * init.c (cpp_finish): Just call deps_write.
index b0ac22be6ba596ff79b9ec48d0944200268a84c4..3255cbfb6c8db1bf73863f7c75773a1334cfab6b 100644 (file)
@@ -906,11 +906,11 @@ _cpp_stack_file (cpp_reader *pfile, _cpp_file *file, bool import,
     sysp = MAX (pfile->buffer->sysp,  file->dir->sysp);
 
   /* Add the file to the dependencies on its first inclusion.  */
-  if (CPP_OPTION (pfile, deps.style) > !!sysp && !file->stack_count)
-    {
-      if (!file->main_file || !CPP_OPTION (pfile, deps.ignore_main_file))
-       deps_add_dep (pfile->deps, file->path);
-    }
+  if (!file->stack_count
+      && CPP_OPTION (pfile, deps.style) > !!sysp
+      && file->path[0]
+      && (!file->main_file || !CPP_OPTION (pfile, deps.ignore_main_file)))
+    deps_add_dep (pfile->deps, file->path);
 
   /* Clear buffer_valid since _cpp_clean_line messes it up.  */
   file->buffer_valid = false;
index a9a050cf110434a68bc0afb58a2307c283a9b3d5..96cc49b9cc1720544c56e38210d48c78136011a2 100644 (file)
@@ -281,6 +281,8 @@ deps_add_default_target (struct mkdeps *d, const char *tgt)
 void
 deps_add_dep (struct mkdeps *d, const char *t)
 {
+  gcc_assert (*t);
+
   t = apply_vpath (d, t);
 
   d->deps.push (xstrdup (t));