summaryrefslogtreecommitdiff
path: root/libcpp/files.c
diff options
context:
space:
mode:
authorManuel López-Ibáñez <manu@gcc.gnu.org>2009-05-13 23:17:55 +0000
committerManuel López-Ibáñez <manu@gcc.gnu.org>2009-05-13 23:17:55 +0000
commit00b0c19b4bbfa483925a177ed3e6ce2e1f42444b (patch)
tree148f0c276cd055d9c2b057991dccf87084ea5216 /libcpp/files.c
parentf06257d36aac7da75b3eaf7d06cf138a303977cb (diff)
downloadgcc-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/files.c')
-rw-r--r--libcpp/files.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/libcpp/files.c b/libcpp/files.c
index 06ccd0fd695..c8c19021f56 100644
--- a/libcpp/files.c
+++ b/libcpp/files.c
@@ -912,13 +912,14 @@ _cpp_stack_include (cpp_reader *pfile, const char *fname, int angle_brackets,
file = _cpp_find_file (pfile, fname, dir, false, angle_brackets);
- /* Compensate for the increment in linemap_add. In the case of a
- normal #include, we're currently at the start of the line
- *following* the #include. A separate source_location for this
- location makes no sense (until we do the LC_LEAVE), and
- complicates LAST_SOURCE_LINE_LOCATION. This does not apply if we
- found a PCH file (in which case linemap_add is not called) or we
- were included from the command-line. */
+ /* Compensate for the increment in linemap_add that occurs in
+ _cpp_stack_file. In the case of a normal #include, we're
+ currently at the start of the line *following* the #include. A
+ separate source_location for this location makes no sense (until
+ we do the LC_LEAVE), and complicates LAST_SOURCE_LINE_LOCATION.
+ This does not apply if we found a PCH file (in which case
+ linemap_add is not called) or we were included from the
+ command-line. */
if (file->pchname == NULL && file->err_no == 0 && type != IT_CMDLINE)
pfile->line_table->highest_location--;