http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52101
--- Comment #10 from Tobias Burnus <burnus at gcc dot gnu.org> 2012-07-16
19:38:33 UTC ---
Untested patch:
--- a/gcc/fortran/decl.c
+++ b/gcc/fortran/decl.c
@@ -725,3 +729,3 @@ syntax:
static match
-match_char_length (gfc_expr **expr, bool *deferred)
+match_char_length (gfc_expr **expr, bool *deferred, bool obsolenscent_check)
{
@@ -741,4 +745,5 @@ match_char_length (gfc_expr **expr, bool *deferred)
{
- 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;
@@ -1029,3 +1034,3 @@ gfc_verify_c_interop_param (gfc_symbol *sym)
sym->ns->proc_name->name);
- else
+ else if (gfc_option.warn_c_binding_type)
gfc_warning ("Variable '%s' at %L is a parameter to the "
@@ -1851,3 +1856,3 @@ variable_decl (int elem)
{
- switch (match_char_length (&char_len, &cl_deferred))
+ switch (match_char_length (&char_len, &cl_deferred), false)
{
@@ -2413,3 +2418,3 @@ gfc_match_char_spec (gfc_typespec *ts)
- m = match_char_length (&len, &deferred);
+ m = match_char_length (&len, &deferred, true);
if (m != MATCH_NO)