re PR fortran/30783 ("character(*), value" produces SEGV at runtime)
2007-02-20 Tobias Burnus <burnus@net-b.de> PR fortran/30783 * resolve.c (resolve_symbol): Add character dummy VALUE check. From-SVN: r122156
This commit is contained in:
parent
c88b0c50f7
commit
1084b6b03b
@ -1,3 +1,8 @@
|
||||
2007-02-20 Tobias Burnus <burnus@net-b.de>
|
||||
|
||||
PR fortran/30783
|
||||
* resolve.c (resolve_symbol): Add character dummy VALUE check.
|
||||
|
||||
2007-02-19 Thomas Koenig <Thomas.Koenig@online.de>
|
||||
|
||||
PR libfortran/30533
|
||||
@ -29,8 +34,8 @@
|
||||
2007-02-18 Roger Sayle <roger@eyesopen.com>
|
||||
Paul Thomas <pault@gcc.gnu.org>
|
||||
|
||||
PR fortran/30400
|
||||
* match.c (match_forall_iterator): Use gfc_match_expr instead
|
||||
PR fortran/30400
|
||||
* match.c (match_forall_iterator): Use gfc_match_expr instead
|
||||
of gfc_match_variable to match the iterator variable. Return
|
||||
MATCH_NO if not a variable. Remove the reset of the symbol's
|
||||
flavor in cleanup.
|
||||
|
@ -6153,10 +6153,22 @@ resolve_symbol (gfc_symbol *sym)
|
||||
if (sym->attr.value && !sym->attr.dummy)
|
||||
{
|
||||
gfc_error ("'%s' at %L cannot have the VALUE attribute because "
|
||||
"it is not a dummy", sym->name, &sym->declared_at);
|
||||
"it is not a dummy argument", sym->name, &sym->declared_at);
|
||||
return;
|
||||
}
|
||||
|
||||
if (sym->attr.value && sym->ts.type == BT_CHARACTER)
|
||||
{
|
||||
gfc_charlen *cl = sym->ts.cl;
|
||||
if (!cl || !cl->length || cl->length->expr_type != EXPR_CONSTANT)
|
||||
{
|
||||
gfc_error ("Character dummy variable '%s' at %L with VALUE "
|
||||
"attribute must have constant length",
|
||||
sym->name, &sym->declared_at);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/* If a derived type symbol has reached this point, without its
|
||||
type being declared, we have an error. Notice that most
|
||||
conditions that produce undefined derived types have already
|
||||
|
Loading…
Reference in New Issue
Block a user