Whilst investigating PR preprocessor/78324 I noticed that the
substring location code currently doesn't handle raw strings
correctly, by not skipping the 'R', opening quote, delimiter
and opening parenthesis.
For example, an attempt to underline chars 4-7 with caret at 6 of
this raw string yields this erroneous output:
__emit_string_literal_range (R"foo(0123456789)foo",
~~^~
With the patch, the correct range/caret is printed:
__emit_string_literal_range (R"foo(0123456789)foo",
~~^~
gcc/ChangeLog:
* input.c (selftest::test_lexer_string_locations_long_line): New
function.
(selftest::test_lexer_string_locations_raw_string_multiline): New
function.
(selftest::input_c_tests): Call the new functions, via
for_each_line_table_case.
gcc/testsuite/ChangeLog:
* gcc.dg/plugin/diagnostic-test-string-literals-1.c
(test_raw_string_one_liner): New function.
(test_raw_string_multiline): New function.
libcpp/ChangeLog:
* charset.c (cpp_interpret_string_1): Skip locations from
loc_reader when advancing 'p' when handling raw strings.
From-SVN: r242552
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| include | Loading commit data... | |
| po | Loading commit data... | |
| ChangeLog | Loading commit data... | |
| ChangeLog.jit | Loading commit data... | |
| Makefile.in | Loading commit data... | |
| aclocal.m4 | Loading commit data... | |
| charset.c | Loading commit data... | |
| config.in | Loading commit data... | |
| configure | Loading commit data... | |
| configure.ac | Loading commit data... | |
| directives-only.c | Loading commit data... | |
| directives.c | Loading commit data... | |
| errors.c | Loading commit data... | |
| expr.c | Loading commit data... | |
| files.c | Loading commit data... | |
| identifiers.c | Loading commit data... | |
| init.c | Loading commit data... | |
| internal.h | Loading commit data... | |
| lex.c | Loading commit data... | |
| line-map.c | Loading commit data... | |
| location-example.txt | Loading commit data... | |
| macro.c | Loading commit data... | |
| makeucnid.c | Loading commit data... | |
| mkdeps.c | Loading commit data... | |
| pch.c | Loading commit data... | |
| symtab.c | Loading commit data... | |
| system.h | Loading commit data... | |
| traditional.c | Loading commit data... | |
| ucnid.h | Loading commit data... | |
| ucnid.tab | Loading commit data... |