line-map.c (linemap_position_for_loc_and_offset): Add new linemap_assert_fails.

libcpp/ChangeLog:

2014-12-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* line-map.c (linemap_position_for_loc_and_offset): Add new
	linemap_assert_fails.

gcc/fortran/ChangeLog:

2014-12-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* scanner.c (gfc_next_char_literal): Use gfc_warning_now.
	(load_file): Use the line length as the column hint for
	linemap_line_start. Reserve a location for the highest column of
	the line.

From-SVN: r218407
This commit is contained in:
Manuel López-Ibáñez 2014-12-04 23:35:29 +00:00
parent 97aa8bb6e2
commit b93c07227e
5 changed files with 29 additions and 4 deletions

View File

@ -1,3 +1,10 @@
2014-12-05 Manuel López-Ibáñez <manu@gcc.gnu.org>
* scanner.c (gfc_next_char_literal): Use gfc_warning_now.
(load_file): Use the line length as the column hint for
linemap_line_start. Reserve a location for the highest column of
the line.
2014-12-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR fortran/44054

View File

@ -1056,7 +1056,8 @@ restart:
gfc_current_locus.lb->truncated = 0;
gfc_current_locus.nextc = gfc_current_locus.lb->line + maxlen;
gfc_warning_now_1 ("Line truncated at %L", &gfc_current_locus);
gfc_warning_now (OPT_Wline_truncation,
"Line truncated at %L", &gfc_current_locus);
gfc_current_locus.nextc = current_nextc;
}
@ -1195,7 +1196,8 @@ restart:
&& gfc_current_locus.lb->truncated)
{
gfc_current_locus.lb->truncated = 0;
gfc_warning_now_1 ("Line truncated at %L", &gfc_current_locus);
gfc_warning_now (OPT_Wline_truncation,
"Line truncated at %L", &gfc_current_locus);
}
prev_openmp_flag = openmp_flag;
@ -2044,7 +2046,13 @@ load_file (const char *realfilename, const char *displayedname, bool initial)
+ (len + 1) * sizeof (gfc_char_t));
b->location
= linemap_line_start (line_table, current_file->line++, 120);
= linemap_line_start (line_table, current_file->line++, len);
/* ??? We add the location for the maximum column possible here,
because otherwise if the next call creates a new line-map, it
will not reserve space for any offset. */
if (len > 0)
linemap_position_for_column (line_table, len);
b->file = current_file;
b->truncated = trunc;
wide_strcpy (b->line, line);

View File

@ -1,3 +1,7 @@
2014-12-05 Manuel López-Ibáñez <manu@gcc.gnu.org>
* gfortran.dg/line_length_5.f90: New test.
2014-12-04 Sriraman Tallam <tmsriram@google.com>
H.J. Lu <hongjiu.lu@intel.com>

View File

@ -1,3 +1,8 @@
2014-12-05 Manuel López-Ibáñez <manu@gcc.gnu.org>
* line-map.c (linemap_position_for_loc_and_offset): Add new
linemap_assert_fails.
2014-12-02 Manuel López-Ibáñez <manu@gcc.gnu.org>
* include/line-map.h (linemap_assert_fails): Declare.

View File

@ -678,7 +678,8 @@ linemap_position_for_loc_and_offset (struct line_maps *set,
linemap_position_for_line_and_column (map,
SOURCE_LINE (map, loc),
offset);
if (linemap_assert_fails (map == linemap_lookup (set, r)))
if (linemap_assert_fails (r <= set->highest_location)
|| linemap_assert_fails (map == linemap_lookup (set, r)))
return loc;
return r;