diff options
author | Nathan Sidwell <nathan@acm.org> | 2020-05-20 13:43:11 -0700 |
---|---|---|
committer | Nathan Sidwell <nathan@acm.org> | 2020-05-20 13:43:11 -0700 |
commit | 38a4db21e12816c674406f33d8bc4d064d4211d7 (patch) | |
tree | 6ed6d995e37a17fab382d50340f986e5b4188b84 /gcc | |
parent | c22027a00ede06e3f53170a82aa5b6af8697ddc4 (diff) | |
download | gcc-38a4db21e12816c674406f33d8bc4d064d4211d7.zip gcc-38a4db21e12816c674406f33d8bc4d064d4211d7.tar.gz gcc-38a4db21e12816c674406f33d8bc4d064d4211d7.tar.bz2 |
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.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/c-family/ChangeLog | 2 | ||||
-rw-r--r-- | gcc/c-family/c-common.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/c-c++-common/cpp/cmd-1.c | 13 | ||||
-rw-r--r-- | gcc/testsuite/c-c++-common/cpp/cmd-1.h | 1 |
4 files changed, 17 insertions, 2 deletions
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index 90f022c..50614cf 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 10c0353..b1379fa 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 0000000..bc9b352 --- /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 0000000..1634764 --- /dev/null +++ b/gcc/testsuite/c-c++-common/cpp/cmd-1.h @@ -0,0 +1 @@ +nope |