diff options
author | Tobias Burnus <burnus@net-b.de> | 2011-07-28 00:33:00 +0200 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2011-07-28 00:33:00 +0200 |
commit | 4bfd470b854a067ba8b391b755ff5b12cd3a86ee (patch) | |
tree | d3f39e5b8327605b3d5e3c4f21ad48b4d1bdd185 /gcc/fortran | |
parent | fa8a398ea90c5e990dfdec7218c09766e70216ba (diff) | |
download | gcc-4bfd470b854a067ba8b391b755ff5b12cd3a86ee.zip gcc-4bfd470b854a067ba8b391b755ff5b12cd3a86ee.tar.gz gcc-4bfd470b854a067ba8b391b755ff5b12cd3a86ee.tar.bz2 |
re PR fortran/45586 (ICE non-trivial conversion at assignment)
2011-07-27 Tobias Burnus <burnus@net-b.de>
PR fortran/45586
* trans-types.c (gfc_get_derived_type): Ensure that pointer
component types are marked as nonrestricted.
2011-07-27 Tobias Burnus <burnus@net-b.de>
PR fortran/45586
* gfortran.dg/lto/pr45586-2_0.f90: New.
From-SVN: r176852
Diffstat (limited to 'gcc/fortran')
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/trans-types.c | 3 |
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index a2614a0..275285e 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2011-07-27 Tobias Burnus <burnus@net-b.de> + + PR fortran/45586 + * trans-types.c (gfc_get_derived_type): Ensure that pointer + component types are marked as nonrestricted. + 2011-07-27 Daniel Carrera <dcarrera@gmail.com> PR fortran/49755 diff --git a/gcc/fortran/trans-types.c b/gcc/fortran/trans-types.c index b66941f..bec2a11 100644 --- a/gcc/fortran/trans-types.c +++ b/gcc/fortran/trans-types.c @@ -2421,6 +2421,9 @@ gfc_get_derived_type (gfc_symbol * derived) && !c->attr.proc_pointer) field_type = build_pointer_type (field_type); + if (c->attr.pointer) + field_type = gfc_nonrestricted_type (field_type); + /* vtype fields can point to different types to the base type. */ if (c->ts.type == BT_DERIVED && c->ts.u.derived->attr.vtype) field_type = build_pointer_type_for_mode (TREE_TYPE (field_type), |