From 38a4db21e12816c674406f33d8bc4d064d4211d7 Mon Sep 17 00:00:00 2001
From: Nathan Sidwell <nathan@acm.org>
Date: Wed, 20 May 2020 13:43:11 -0700
Subject: [PATCH] preprocessor:  Revert premature change

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                 |  2 ++
 gcc/c-family/c-common.c                |  3 +--
 gcc/testsuite/c-c++-common/cpp/cmd-1.c | 13 +++++++++++++
 gcc/testsuite/c-c++-common/cpp/cmd-1.h |  1 +
 4 files changed, 17 insertions(+), 2 deletions(-)
 create mode 100644 gcc/testsuite/c-c++-common/cpp/cmd-1.c
 create mode 100644 gcc/testsuite/c-c++-common/cpp/cmd-1.h

diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index 90f022c76228..50614cf1f68f 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -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.
diff --git a/gcc/c-family/c-common.c b/gcc/c-family/c-common.c
index 10c0353fe4e4..b1379faa412e 100644
--- a/gcc/c-family/c-common.c
+++ b/gcc/c-family/c-common.c
@@ -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
index 000000000000..bc9b352b25ef
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/cpp/cmd-1.c
@@ -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
index 000000000000..1634764a4412
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/cpp/cmd-1.h
@@ -0,0 +1 @@
+nope
-- 
GitLab