aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/resolve.c
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2021-12-12 22:22:10 +0100
committerMartin Liska <mliska@suse.cz>2021-12-12 22:22:10 +0100
commitcf116c791582be1c0cc9e04872cb7f8d0d463fd8 (patch)
tree944e608d1d2b0e84299eb618a4cc015e2d1e4b06 /gcc/fortran/resolve.c
parent7a81590757659982cb9b93b922a4c182aa40e2d8 (diff)
parentaeedb00a1ae2ccd10b1a5f00ff466081aeadb54b (diff)
downloadgcc-cf116c791582be1c0cc9e04872cb7f8d0d463fd8.zip
gcc-cf116c791582be1c0cc9e04872cb7f8d0d463fd8.tar.gz
gcc-cf116c791582be1c0cc9e04872cb7f8d0d463fd8.tar.bz2
Merge branch 'master' into devel/sphinx
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r--gcc/fortran/resolve.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index 0ed3197..bff1b35 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -13294,7 +13294,8 @@ resolve_fl_procedure (gfc_symbol *sym, int mp_flag)
/* An elemental function is required to return a scalar 12.7.1 */
if (sym->attr.elemental && sym->attr.function
- && (sym->as || (sym->ts.type == BT_CLASS && CLASS_DATA (sym)->as)))
+ && (sym->as || (sym->ts.type == BT_CLASS && sym->attr.class_ok
+ && CLASS_DATA (sym)->as)))
{
gfc_error ("ELEMENTAL function %qs at %L must have a scalar "
"result", sym->name, &sym->declared_at);