mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-03 07:00:27 +08:00
re PR fortran/39893 ([4.4] gfortran ICE on invalid program)
2009-04-26 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/39893 * gfortran.dg/assumed_charlen_dummy.f90: New Test. 2009-04-26 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/39893 fortran/data.c (gfc_assign_data_value): If the lvalue is an assumed character length entity in a data statement, then return FAILURE to prevent segmentation fault. From-SVN: r146816
This commit is contained in:
parent
17c665a997
commit
5846213b87
@ -1,3 +1,10 @@
|
||||
2009-04-26 Steven G. Kargl <kargl@gcc.gnu.org>
|
||||
|
||||
PR fortran/39893
|
||||
fortran/data.c (gfc_assign_data_value): If the lvalue is an
|
||||
assumed character length entity in a data statement, then
|
||||
return FAILURE to prevent segmentation fault.
|
||||
|
||||
2009-04-26 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* trans-decl.c: Include pointer-set.h.
|
||||
|
@ -416,7 +416,11 @@ gfc_assign_data_value (gfc_expr *lvalue, gfc_expr *rvalue, mpz_t index)
|
||||
}
|
||||
|
||||
if (ref || last_ts->type == BT_CHARACTER)
|
||||
expr = create_character_intializer (init, last_ts, ref, rvalue);
|
||||
{
|
||||
if (lvalue->ts.cl->length == NULL && !(ref && ref->u.ss.length != NULL))
|
||||
return FAILURE;
|
||||
expr = create_character_intializer (init, last_ts, ref, rvalue);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Overwriting an existing initializer is non-standard but usually only
|
||||
|
@ -1,3 +1,8 @@
|
||||
2009-04-26 Steven G. Kargl <kargl@gcc.gnu.org>
|
||||
|
||||
PR fortran/39893
|
||||
* gfortran.dg/assumed_charlen_dummy.f90: New Test.
|
||||
|
||||
2009-04-26 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR inline-asm/39543
|
||||
|
10
gcc/testsuite/gfortran.dg/assumed_charlen_dummy.f90
Normal file
10
gcc/testsuite/gfortran.dg/assumed_charlen_dummy.f90
Normal file
@ -0,0 +1,10 @@
|
||||
! { dg-do compile }
|
||||
! Test the fix for PR fortran/39893.
|
||||
! Original testcase provided by Deji Akingunola.
|
||||
! Reduced testcase provided by Dominique d'Humieres.
|
||||
!
|
||||
SUBROUTINE XAUTOGET()
|
||||
CHARACTER*(*) DICBA ! { dg-error "Entity with assumed character" }
|
||||
DATA DICBA /"CLIP" /
|
||||
RETURN
|
||||
END
|
Loading…
x
Reference in New Issue
Block a user