aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/expr.cc
diff options
context:
space:
mode:
authorHarald Anlauf <anlauf@gmx.de>2023-05-14 21:53:51 +0200
committerHarald Anlauf <anlauf@gmx.de>2023-05-15 19:27:25 +0200
commitfa0569e90efe8a5cb895a3f50dd502f849940828 (patch)
treefa47f9aff520389a606bc0f546c65995c965e51a /gcc/fortran/expr.cc
parent76e11280e79c5dd5089c17d5726cae9a5a21bc2e (diff)
downloadgcc-fa0569e90efe8a5cb895a3f50dd502f849940828.zip
gcc-fa0569e90efe8a5cb895a3f50dd502f849940828.tar.gz
gcc-fa0569e90efe8a5cb895a3f50dd502f849940828.tar.bz2
Fortran: CLASS pointer function result in variable definition context [PR109846]
gcc/fortran/ChangeLog: PR fortran/109846 * expr.cc (gfc_check_vardef_context): Check appropriate pointer attribute for CLASS vs. non-CLASS function result in variable definition context. gcc/testsuite/ChangeLog: PR fortran/109846 * gfortran.dg/ptr-func-5.f90: New test.
Diffstat (limited to 'gcc/fortran/expr.cc')
-rw-r--r--gcc/fortran/expr.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/fortran/expr.cc b/gcc/fortran/expr.cc
index d91722e..09a16c9 100644
--- a/gcc/fortran/expr.cc
+++ b/gcc/fortran/expr.cc
@@ -6256,7 +6256,7 @@ gfc_check_vardef_context (gfc_expr* e, bool pointer, bool alloc_obj,
&& !(sym->attr.flavor == FL_PROCEDURE && sym == sym->result)
&& !(sym->attr.flavor == FL_PROCEDURE && sym->attr.proc_pointer)
&& !(sym->attr.flavor == FL_PROCEDURE
- && sym->attr.function && sym->attr.pointer))
+ && sym->attr.function && attr.pointer))
{
if (context)
gfc_error ("%qs in variable definition context (%s) at %L is not"