From 38a4db21e12816c674406f33d8bc4d064d4211d7 Mon Sep 17 00:00:00 2001 From: Nathan Sidwell 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 90f022c7622..50614cf1f68 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,5 +1,7 @@ 2020-05-20 Nathan Sidwell + * 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 10c0353fe4e..b1379faa412 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 00000000000..bc9b352b25e --- /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 ""\n +#define frob drob\n# 0 ""\n#define drob BOB\n# 0 ""\n# 1 "./h.h" 1\nb\n# 0 "" 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 00000000000..1634764a441 --- /dev/null +++ b/gcc/testsuite/c-c++-common/cpp/cmd-1.h @@ -0,0 +1 @@ +nope -- 2.30.2