diff options
author | Tobias Burnus <burnus@net-b.de> | 2012-07-17 11:40:12 +0200 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2012-07-17 11:40:12 +0200 |
commit | 2767f2cc5cc916f4a99cbfd510cf5a5454c54221 (patch) | |
tree | 4201cb480d0a338993f8d7f5a9550c6839536d71 /gcc/fortran/decl.c | |
parent | 22969a8cc829014eea1121926343509970fb4b47 (diff) | |
download | gcc-2767f2cc5cc916f4a99cbfd510cf5a5454c54221.zip gcc-2767f2cc5cc916f4a99cbfd510cf5a5454c54221.tar.gz gcc-2767f2cc5cc916f4a99cbfd510cf5a5454c54221.tar.bz2 |
re PR fortran/52101 (Obsolescence warning for non-obs. feature character name*length)
2012-07-17 Tobias Burnus <burnus@net-b.de>
PR fortran/52101
* decl.c (match_char_length): Extra argument, show obsolenscent
warning only if *length is used after the typename.
(variable_decl, gfc_match_char_spec): Update call
2012-07-17 Tobias Burnus <burnus@net-b.de>
PR fortran/52101
* gfortran.dg/oldstyle_4.f90: New.
From-SVN: r189565
Diffstat (limited to 'gcc/fortran/decl.c')
-rw-r--r-- | gcc/fortran/decl.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c index 9bd3dc3..89d501c 100644 --- a/gcc/fortran/decl.c +++ b/gcc/fortran/decl.c @@ -723,7 +723,7 @@ syntax: char_len_param_value in parenthesis. */ static match -match_char_length (gfc_expr **expr, bool *deferred) +match_char_length (gfc_expr **expr, bool *deferred, bool obsolenscent_check) { int length; match m; @@ -739,8 +739,9 @@ match_char_length (gfc_expr **expr, bool *deferred) if (m == MATCH_YES) { - if (gfc_notify_std (GFC_STD_F95_OBS, "Obsolescent feature: " - "Old-style character length at %C") == FAILURE) + if (obsolenscent_check + && gfc_notify_std (GFC_STD_F95_OBS, "Obsolescent feature: " + "Old-style character length at %C") == FAILURE) return MATCH_ERROR; *expr = gfc_get_int_expr (gfc_default_integer_kind, NULL, length); return m; @@ -1849,7 +1850,7 @@ variable_decl (int elem) if (current_ts.type == BT_CHARACTER) { - switch (match_char_length (&char_len, &cl_deferred)) + switch (match_char_length (&char_len, &cl_deferred, false)) { case MATCH_YES: cl = gfc_new_charlen (gfc_current_ns, NULL); @@ -2411,7 +2412,7 @@ gfc_match_char_spec (gfc_typespec *ts) /* Try the old-style specification first. */ old_char_selector = 0; - m = match_char_length (&len, &deferred); + m = match_char_length (&len, &deferred, true); if (m != MATCH_NO) { if (m == MATCH_YES) |