diff options
author | Mark Eggleston <markeggleston@gcc.gnu.org> | 2020-07-06 07:14:59 +0100 |
---|---|---|
committer | Mark Eggleston <markeggleston@gcc.gnu.org> | 2020-07-14 07:16:56 +0100 |
commit | 9ad19a66d751ab48515ef61f830e192ae4078b93 (patch) | |
tree | 609958db50c9bfc59d705623e9e65e23cdaca652 /gcc/fortran/decl.c | |
parent | ea69fcf9a036bbecd63c39f24b155b1c46953e0d (diff) | |
download | gcc-9ad19a66d751ab48515ef61f830e192ae4078b93.zip gcc-9ad19a66d751ab48515ef61f830e192ae4078b93.tar.gz gcc-9ad19a66d751ab48515ef61f830e192ae4078b93.tar.bz2 |
Fortran : Implicitly type parameter causes an invalid error PR96038
If a paramter to declared and initialised before its type is
declared a bogus error is output at the type declaration
idicating that initialisation is missing.
2020-07-14 Steven G. Kargl <kargl@gcc.gnu.org>
gcc/fortran/
PR fortran/96038
* decl.c (add_init_expr_sym): For a symbol that is a
parameter accept an initialisation if it does not have a
value otherwise output a error and reject.
2020-07-14 Mark Eggleston <markeggleston@gcc.gnu.org>
gcc/testsuite/
PR fortran/96038
* gfortran.dg/pr96038.f90: New test.
Diffstat (limited to 'gcc/fortran/decl.c')
-rw-r--r-- | gcc/fortran/decl.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c index 52c2a62..d854b2a 100644 --- a/gcc/fortran/decl.c +++ b/gcc/fortran/decl.c @@ -1889,13 +1889,16 @@ add_init_expr_to_sym (const char *name, gfc_expr **initp, locus *var_locus) /* If this symbol is confirming an implicit parameter type, then an initialization expression is not allowed. */ - if (attr.flavor == FL_PARAMETER - && sym->value != NULL - && *initp != NULL) + if (attr.flavor == FL_PARAMETER && sym->value != NULL) { - gfc_error ("Initializer not allowed for PARAMETER %qs at %C", - sym->name); - return false; + if (*initp != NULL) + { + gfc_error ("Initializer not allowed for PARAMETER %qs at %C", + sym->name); + return false; + } + else + return true; } if (init == NULL) |