aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/primary.cc
diff options
context:
space:
mode:
authorHarald Anlauf <anlauf@gmx.de>2023-03-02 22:37:14 +0100
committerHarald Anlauf <anlauf@gmx.de>2023-03-05 21:10:39 +0100
commit6aa1f40a3263741d964ef4716e85a0df5cec83b6 (patch)
tree4ee01f9ce824da43fcad405312812ffd318ef782 /gcc/fortran/primary.cc
parentca27d765f1d88a0f9d625b3519b6a8b1f8b19cc7 (diff)
downloadgcc-6aa1f40a3263741d964ef4716e85a0df5cec83b6.zip
gcc-6aa1f40a3263741d964ef4716e85a0df5cec83b6.tar.gz
gcc-6aa1f40a3263741d964ef4716e85a0df5cec83b6.tar.bz2
Fortran: fix CLASS attribute handling [PR106856]
gcc/fortran/ChangeLog: PR fortran/106856 * class.cc (gfc_build_class_symbol): Handle update of attributes of existing class container. (gfc_find_derived_vtab): Fix several memory leaks. (find_intrinsic_vtab): Ditto. * decl.cc (attr_decl1): Manage update of symbol attributes from CLASS attributes. * primary.cc (gfc_variable_attr): OPTIONAL shall not be taken or updated from the class container. * symbol.cc (free_old_symbol): Adjust management of symbol versions to not prematurely free array specs while working on the declation of CLASS variables. gcc/testsuite/ChangeLog: PR fortran/106856 * gfortran.dg/interface_41.f90: Remove dg-pattern from valid testcase. * gfortran.dg/class_74.f90: New test. * gfortran.dg/class_75.f90: New test. Co-authored-by: Tobias Burnus <tobias@codesourcery.com>
Diffstat (limited to 'gcc/fortran/primary.cc')
-rw-r--r--gcc/fortran/primary.cc1
1 files changed, 0 insertions, 1 deletions
diff --git a/gcc/fortran/primary.cc b/gcc/fortran/primary.cc
index 1bea17d..00d35a7 100644
--- a/gcc/fortran/primary.cc
+++ b/gcc/fortran/primary.cc
@@ -2640,7 +2640,6 @@ gfc_variable_attr (gfc_expr *expr, gfc_typespec *ts)
codimension = CLASS_DATA (sym)->attr.codimension;
pointer = CLASS_DATA (sym)->attr.class_pointer;
allocatable = CLASS_DATA (sym)->attr.allocatable;
- optional |= CLASS_DATA (sym)->attr.optional;
}
else
{