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
This commit is contained in:
@@ -1,3 +1,11 @@
|
||||
2009-05-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
|
||||
|
||||
PR cpp/36674
|
||||
* 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.
|
||||
|
||||
2009-05-10 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* include/cpplib.h (enum cpp_token_fld_kind): Add
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
+8
-7
@@ -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--;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user