Commit 45a82bd9 by Per Bothner Committed by Per Bothner

data.c (gfc_assign_data_value): Handle USE_MAPPED_LOCATION.

	* data.c (gfc_assign_data_value): Handle USE_MAPPED_LOCATION.
	* scanner.c (gfc_gobble_whitespace): Likewise.

From-SVN: r114310
parent e118597e
2006-06-01 Per Bothner <bothner@bothner.com>
* data.c (gfc_assign_data_value): Handle USE_MAPPED_LOCATION.
* scanner.c (gfc_gobble_whitespace): Likewise.
2006-06-01 Paul Thomas <pault@gcc.gnu.org> 2006-06-01 Paul Thomas <pault@gcc.gnu.org>
PR fortran/25098 PR fortran/25098
......
...@@ -325,8 +325,14 @@ gfc_assign_data_value (gfc_expr * lvalue, gfc_expr * rvalue, mpz_t index) ...@@ -325,8 +325,14 @@ gfc_assign_data_value (gfc_expr * lvalue, gfc_expr * rvalue, mpz_t index)
/* Order in which the expressions arrive here depends on whether they /* Order in which the expressions arrive here depends on whether they
are from data statements or F95 style declarations. Therefore, are from data statements or F95 style declarations. Therefore,
check which is the most recent. */ check which is the most recent. */
#ifdef USE_MAPPED_LOCATION
expr = (LOCATION_LINE (init->where.lb->location)
> LOCATION_LINE (rvalue->where.lb->location))
? init : rvalue;
#else
expr = (init->where.lb->linenum > rvalue->where.lb->linenum) ? expr = (init->where.lb->linenum > rvalue->where.lb->linenum) ?
init : rvalue; init : rvalue;
#endif
gfc_notify_std (GFC_STD_GNU, "Extension: re-initialization " gfc_notify_std (GFC_STD_GNU, "Extension: re-initialization "
"of '%s' at %L", symbol->name, &expr->where); "of '%s' at %L", symbol->name, &expr->where);
return; return;
......
...@@ -852,13 +852,20 @@ gfc_gobble_whitespace (void) ...@@ -852,13 +852,20 @@ gfc_gobble_whitespace (void)
/* Issue a warning for nonconforming tabs. We keep track of the line /* Issue a warning for nonconforming tabs. We keep track of the line
number because the Fortran matchers will often back up and the same number because the Fortran matchers will often back up and the same
line will be scanned multiple times. */ line will be scanned multiple times. */
if (!gfc_option.warn_tabs && c == '\t' if (!gfc_option.warn_tabs && c == '\t')
&& gfc_current_locus.lb->linenum != linenum)
{ {
linenum = gfc_current_locus.lb->linenum; #ifdef USE_MAPPED_LOCATION
int cur_linenum = LOCATION_LINE (gfc_current_locus.lb->location);
#else
int cur_linenum = gfc_current_locus.lb->linenum;
#endif
if (cur_linenum != linenum)
{
linenum = cur_linenum;
gfc_warning_now ("Nonconforming tab character at %C"); gfc_warning_now ("Nonconforming tab character at %C");
} }
} }
}
while (gfc_is_whitespace (c)); while (gfc_is_whitespace (c));
gfc_current_locus = old_loc; gfc_current_locus = old_loc;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment