From: Richard Biener Date: Mon, 19 Apr 2021 08:07:35 +0000 (+0200) Subject: preprocessor/100142 - revert unwanted change in last commit X-Git-Tag: basepoints/gcc-12~14 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=2f422b550ff6351d312e6c81a00b488d9280bfff;p=thirdparty%2Fgcc.git 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. --- 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. */