preprocessor: Revert premature change
authorNathan Sidwell <nathan@acm.org>
Wed, 20 May 2020 20:43:11 +0000 (13:43 -0700)
committerNathan Sidwell <nathan@acm.org>
Wed, 20 May 2020 20:43:11 +0000 (13:43 -0700)
This part of the cleanup patch turns out to require more pieces to
function correctly.  I must have got confused over which tree I was
testing.  The very first map has a different pointer to the file name,
so doesn't match with a pointer compare. We were relying on that.

* c-common.c (try_to_locate_new_include_insertion_point): Revert change.

gcc/c-family/ChangeLog
gcc/c-family/c-common.c
gcc/testsuite/c-c++-common/cpp/cmd-1.c [new file with mode: 0644]
gcc/testsuite/c-c++-common/cpp/cmd-1.h [new file with mode: 0644]

index 90f022c76228ea3f073857b36d7d9cb29515a583..50614cf1f68fe2162c6d1eed12e3b45c2225f787 100644 (file)
@@ -1,5 +1,7 @@
 2020-05-20  Nathan Sidwell  <nathan@acm.org>
 
+       * c-common.c (try_to_locate_new_include_insertion_point): Revert change.
+
        * c-common.c (try_to_locate_new_include_insertion_point): Use
        strcmp to compare filenames.
        * c-lex.c (init_c_lex): Move declaration to initialization.
index 10c0353fe4e4c72b023021585d36f161ae77161c..b1379faa412e3646a443969c0067f5c4fb23e107 100644 (file)
@@ -8708,8 +8708,7 @@ try_to_locate_new_include_insertion_point (const char *file, location_t loc)
            last_ord_map_after_include = NULL;
          }
 
-      if (0 == strcmp (ord_map->to_file, file)
-         && ord_map->to_line)
+      if (ord_map->to_file == file)
        {
          if (!first_ord_map_in_file)
            first_ord_map_in_file = ord_map;
diff --git a/gcc/testsuite/c-c++-common/cpp/cmd-1.c b/gcc/testsuite/c-c++-common/cpp/cmd-1.c
new file mode 100644 (file)
index 0000000..bc9b352
--- /dev/null
@@ -0,0 +1,13 @@
+/* { dg-do preprocess }
+   { dg-options "-Dfrob=drob -Ddrob=BOB f.c -E -fdirectives-only -include cmd-1.h" }
+*/
+
+#define BOB bob()
+#define bob() dob
+
+frob
+
+/* Ensure fidelity of the preprocessed output.  */
+/* { dg-final { scan-file cmd-1.o {# 0 "<command-line>"\n
+#define frob drob\n# 0 "<command-line>"\n#define drob BOB\n# 0 "<command-line>"\n# 1 "./h.h" 1\nb\n# 0 "<command-line>" 2\n# 1 "f.c"\n\n#define BOB bob()\n#define bob() dob\n} } }
+ */
diff --git a/gcc/testsuite/c-c++-common/cpp/cmd-1.h b/gcc/testsuite/c-c++-common/cpp/cmd-1.h
new file mode 100644 (file)
index 0000000..1634764
--- /dev/null
@@ -0,0 +1 @@
+nope