re PR fortran/90937 (ICE: in gfc_get_symbol_decl, at fortran/trans-decl.c:1538)
2019-06-20 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/90937 * trans-types.c (get_formal_from_actual_arglist): Get symbol from current namespace so it will be freed later. If symbol is of type character, get an empty character length. 2019-06-20 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/90937 * gfortran.dg/external_procedure_4.f90: New test. From-SVN: r272506
This commit is contained in:
parent
1194e1971a
commit
877ef62879
|
@ -1,3 +1,10 @@
|
||||||
|
2019-06-20 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||||||
|
|
||||||
|
PR fortran/90937
|
||||||
|
* trans-types.c (get_formal_from_actual_arglist): Get symbol from
|
||||||
|
current namespace so it will be freed later. If symbol is of type
|
||||||
|
character, get an empty character length.
|
||||||
|
|
||||||
2019-06-19 Steven G. Kargl <kargl@gcc.gnu.org>
|
2019-06-19 Steven G. Kargl <kargl@gcc.gnu.org>
|
||||||
|
|
||||||
PR fortran/69499
|
PR fortran/69499
|
||||||
|
@ -105,7 +112,7 @@
|
||||||
|
|
||||||
PR fortran/90002
|
PR fortran/90002
|
||||||
* array.c (gfc_free_array_spec): When freeing an array-spec, avoid
|
* array.c (gfc_free_array_spec): When freeing an array-spec, avoid
|
||||||
an ICE for assumed-shape coarrays
|
an ICE for assumed-shape coarrays.
|
||||||
|
|
||||||
2019-06-08 Paul Thomas <pault@gcc.gnu.org>
|
2019-06-08 Paul Thomas <pault@gcc.gnu.org>
|
||||||
|
|
||||||
|
|
|
@ -2997,7 +2997,7 @@ get_formal_from_actual_arglist (gfc_symbol *sym, gfc_actual_arglist *actual_args
|
||||||
if (a->expr)
|
if (a->expr)
|
||||||
{
|
{
|
||||||
snprintf (name, GFC_MAX_SYMBOL_LEN, "_formal_%d", var_num ++);
|
snprintf (name, GFC_MAX_SYMBOL_LEN, "_formal_%d", var_num ++);
|
||||||
gfc_get_symbol (name, NULL, &s);
|
gfc_get_symbol (name, gfc_current_ns, &s);
|
||||||
if (a->expr->ts.type == BT_PROCEDURE)
|
if (a->expr->ts.type == BT_PROCEDURE)
|
||||||
{
|
{
|
||||||
s->attr.flavor = FL_PROCEDURE;
|
s->attr.flavor = FL_PROCEDURE;
|
||||||
|
@ -3005,6 +3005,10 @@ get_formal_from_actual_arglist (gfc_symbol *sym, gfc_actual_arglist *actual_args
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
s->ts = a->expr->ts;
|
s->ts = a->expr->ts;
|
||||||
|
|
||||||
|
if (s->ts.type == BT_CHARACTER)
|
||||||
|
s->ts.u.cl = gfc_get_charlen ();
|
||||||
|
|
||||||
s->ts.deferred = 0;
|
s->ts.deferred = 0;
|
||||||
s->ts.is_iso_c = 0;
|
s->ts.is_iso_c = 0;
|
||||||
s->ts.is_c_interop = 0;
|
s->ts.is_c_interop = 0;
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
2019-06-20 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||||||
|
|
||||||
|
PR fortran/90937
|
||||||
|
* gfortran.dg/external_procedure_4.f90: New test.
|
||||||
|
|
||||||
2019-06-20 Tom de Vries <tdevries@suse.de>
|
2019-06-20 Tom de Vries <tdevries@suse.de>
|
||||||
|
|
||||||
* gcc.dg/pr90866-2.c: Require global_constructor.
|
* gcc.dg/pr90866-2.c: Require global_constructor.
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
! { dg-do compile }
|
||||||
|
! PR fortran/90937 - this used to cause an ICE.
|
||||||
|
! Original test case by Toon Moene.
|
||||||
|
subroutine lfidiff
|
||||||
|
|
||||||
|
implicit none
|
||||||
|
|
||||||
|
contains
|
||||||
|
|
||||||
|
subroutine grlfi(cdnom)
|
||||||
|
|
||||||
|
character(len=*) cdnom(:)
|
||||||
|
character(len=len(cdnom)) clnoma
|
||||||
|
|
||||||
|
call lficas(clnoma)
|
||||||
|
|
||||||
|
end subroutine grlfi
|
||||||
|
|
||||||
|
end subroutine lfidiff
|
Loading…
Reference in New Issue