Fortran : ICE in gfc_trans_label_assign PR50392
authorMark Eggleston <markeggleston@gcc.gnu.org>
Thu, 7 May 2020 07:15:26 +0000 (08:15 +0100)
committerMark Eggleston <markeggleston@gcc.gnu.org>
Wed, 27 May 2020 14:46:23 +0000 (15:46 +0100)
commita7fd43c38f7469a3ef5ee30e889d60e1376d4dfc
tree833f5547ead1fee4d014c62a7a5f3a0f4e20e46d
parent240198fe0812402e6085033e43d34decdec3c0cf
Fortran  : ICE in gfc_trans_label_assign PR50392

A function may contain an assigned goto.  If the the return variable
is an integer a statement can be assigned to it.  Prior to this fix
this resulted in an ICE.

2020-05-27  Tobias Burnus  <tobias@codesourcery.com>

gcc/fortran/

PR fortran/50392
* trans-decl.c (gfc_get_symbol_decl): Remove unnecessary block
delimiters.  Add auxiliary variables if a label is assigned to
a return variable. (gfc_gat_fake_result): If the symbol has an
assign attribute set declaration from the symbol's backend
declaration.

2020-05-27  Mark Eggleston  <markeggleston@gnu.gcc.org>

gcc/testsuite/

PR fortran/50392
* gfortran.dg/pr50392.f: New test.
gcc/fortran/trans-decl.c
gcc/testsuite/gfortran.dg/pr50392.f [new file with mode: 0644]