diff options
author | Andre Vehreschild <vehre@gcc.gnu.org> | 2024-07-24 09:39:45 +0200 |
---|---|---|
committer | Andre Vehreschild <vehre@gcc.gnu.org> | 2024-08-15 17:24:10 +0200 |
commit | dbf4c574b92bc692a0380a2b5ee25028321e735f (patch) | |
tree | 48a83db25994a3e1f33418bf9db1a1a7e6701158 /gcc/dwarf2codeview.cc | |
parent | a3f1cdd8ed46f9816b31ab162ae4dac547d34ebc (diff) | |
download | gcc-dbf4c574b92bc692a0380a2b5ee25028321e735f.zip gcc-dbf4c574b92bc692a0380a2b5ee25028321e735f.tar.gz gcc-dbf4c574b92bc692a0380a2b5ee25028321e735f.tar.bz2 |
Fix Coarray in associate not a coarray. [PR110033]
A coarray used in an associate did not become a coarray in the block of
the associate. This patch fixes that and the same also in select type
statements.
PR fortran/110033
gcc/fortran/ChangeLog:
* class.cc (gfc_is_class_scalar_expr): Coarray refs that ref
only self, aka this image, are regarded as scalar, too.
* resolve.cc (resolve_assoc_var): Ignore this image coarray refs
and do not build a new class type.
* trans-expr.cc (gfc_get_caf_token_offset): Get the caf token
from the descriptor for associated variables.
(gfc_conv_variable): Same.
(gfc_trans_pointer_assignment): Assign token to temporary
associate variable, too.
(gfc_trans_scalar_assign): Add flag that assign is for associate
and use it to assign the token.
(is_assoc_assign): Detect that expressions are for associate
assign.
(gfc_trans_assignment_1): Treat associate assigns like pointer
assignments where possible.
* trans-stmt.cc (trans_associate_var): Set same_class only for
class-targets.
* trans.h (gfc_trans_scalar_assign): Add flag to
trans_scalar_assign for marking associate assignments.
gcc/testsuite/ChangeLog:
* gfortran.dg/coarray/associate_1.f90: New test.
Diffstat (limited to 'gcc/dwarf2codeview.cc')
0 files changed, 0 insertions, 0 deletions