]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/fortran/trans-stmt.cc
Fortran: Fix problems with class array function selectors [PR112834]
authorPaul Thomas <pault@gcc.gnu.org>
Sat, 16 Dec 2023 13:26:47 +0000 (13:26 +0000)
committerPaul Thomas <pault@gcc.gnu.org>
Sat, 16 Dec 2023 13:26:47 +0000 (13:26 +0000)
commit5ae6f524f5d4ee2ab79ba797fa4901daf90afb25
tree5de0ed1bfea9d7921e0c643c1f4bcbaaef9f9986
parent39f9c426f58448d6df340cdccd84e05721a20921
Fortran: Fix problems with class array function selectors [PR112834]

2023-12-16  Paul Thomas  <pault@gcc.gnu.org>

gcc/fortran
PR fortran/112834
* match.cc (build_associate_name): Fix whitespace issues.
(select_type_set_tmp): If the selector is of unknown type, go
the SELECT TYPE selector to see if this is a function and, if
the result is available, use its typespec.
* parse.cc (parse_associate): Again, use the function result if
the type of the selector result is unknown.
* trans-stmt.cc (trans_associate_var): The expression has to be
of type class, for class_target to be true. Convert and fix
class functions. Pass the fixed expression.

PR fortran/111853
* resolve.cc (gfc_expression_rank): Avoid null dereference.

gcc/testsuite/
PR fortran/112834
* gfortran.dg/associate_63.f90 : New test.

PR fortran/111853
* gfortran.dg/pr111853.f90 : New test.
gcc/fortran/match.cc
gcc/fortran/parse.cc
gcc/fortran/resolve.cc
gcc/fortran/trans-stmt.cc
gcc/testsuite/gfortran.dg/associate_63.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/pr111853.f90 [new file with mode: 0644]