diff options
author | Manuel López-Ibáñez <manu@gcc.gnu.org> | 2009-05-13 23:17:55 +0000 |
---|---|---|
committer | Manuel López-Ibáñez <manu@gcc.gnu.org> | 2009-05-13 23:17:55 +0000 |
commit | 00b0c19b4bbfa483925a177ed3e6ce2e1f42444b (patch) | |
tree | 148f0c276cd055d9c2b057991dccf87084ea5216 /libcpp/directives.c | |
parent | f06257d36aac7da75b3eaf7d06cf138a303977cb (diff) | |
download | gcc-00b0c19b4bbfa483925a177ed3e6ce2e1f42444b.tar.gz |
re PR preprocessor/36674 (#include location is offset by one row in errors from preprocessed files)
2009-05-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
PR cpp/36674
libcpp/
* directives (do_linemarker): Compensate for the increment in
location that occurs when we reach the end of line.
* files (_cpp_stack_include): Mention _cpp_find_file in the
comment.
testsuite/
* gcc.dg/cpp/pr36674.i: New.
From-SVN: r147504
Diffstat (limited to 'libcpp/directives.c')
-rw-r--r-- | libcpp/directives.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/libcpp/directives.c b/libcpp/directives.c index e71efb2bd94..74644ff6c77 100644 --- a/libcpp/directives.c +++ b/libcpp/directives.c @@ -1004,6 +1004,14 @@ do_linemarker (cpp_reader *pfile) } skip_rest_of_line (pfile); + + /* Compensate for the increment in linemap_add that occurs in + _cpp_do_file_change. We're currently at the start of the line + *following* the #line directive. A separate source_location for this + location makes no sense (until we do the LC_LEAVE), and + complicates LAST_SOURCE_LINE_LOCATION. */ + pfile->line_table->highest_location--; + _cpp_do_file_change (pfile, reason, new_file, new_lineno, new_sysp); } |