From 2f422b550ff6351d312e6c81a00b488d9280bfff Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Mon, 19 Apr 2021 10:07:35 +0200 Subject: [PATCH] preprocessor/100142 - revert unwanted change in last commit This reverts a s/column_offset/column/ change in the fix for PR99446. 2021-04-19 Richard Biener PR preprocessor/100142 libcpp/ * line-map.c (linemap_position_for_loc_and_offset): Revert unintended s/column_offset/column/ change. gcc/testsuite/ * gcc.dg/pr100142.c: New testcase. * g++.dg/diagnostic/pr72803.C: Revert last change. --- gcc/testsuite/g++.dg/diagnostic/pr72803.C | 5 ++--- gcc/testsuite/gcc.dg/pr100142.c | 8 ++++++++ libcpp/line-map.c | 2 +- 3 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 gcc/testsuite/gcc.dg/pr100142.c diff --git a/gcc/testsuite/g++.dg/diagnostic/pr72803.C b/gcc/testsuite/g++.dg/diagnostic/pr72803.C index ca522b74bad2..0a9a390b9c33 100644 --- a/gcc/testsuite/g++.dg/diagnostic/pr72803.C +++ b/gcc/testsuite/g++.dg/diagnostic/pr72803.C @@ -5,6 +5,5 @@ class test { // The line directive appears to be necessary to trigger the ICE // { dg-error "style of line directive is a GCC extension" "" { target *-*-* } .-2 } -/* Verify that we get the best line and column for the diagnostic. - 512 is not representable in the line-maps created for this test. */ -// { dg-error "511: expected .;. after class definition" "" { target *-*-* } 3 } +/* Verify that we get the correct line and column for the diagnostic. */ +// { dg-error "512: expected .;. after class definition" "" { target *-*-* } 3 } diff --git a/gcc/testsuite/gcc.dg/pr100142.c b/gcc/testsuite/gcc.dg/pr100142.c new file mode 100644 index 000000000000..aec146cb0a97 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr100142.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-fpreprocessed" } */ + +void +foo (void) +{ + assert (1); /* { dg-warning "implicit" } */ +} diff --git a/libcpp/line-map.c b/libcpp/line-map.c index 2f5e44447d24..a03d6760a8e6 100644 --- a/libcpp/line-map.c +++ b/libcpp/line-map.c @@ -982,7 +982,7 @@ linemap_position_for_loc_and_offset (line_maps *set, the next line map of the set. Otherwise, we try to encode the location in the next map. */ for (; map != LINEMAPS_LAST_ORDINARY_MAP (set) - && (loc + (column << map->m_range_bits) + && (loc + (column_offset << map->m_range_bits) >= MAP_START_LOCATION (map + 1)); map++) /* If the next map is a different file, or starts in a higher line, we cannot encode the location there. */ -- 2.47.3