diff options
author | Tobias Burnus <burnus@net-b.de> | 2012-05-06 22:30:05 +0200 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2012-05-06 22:30:05 +0200 |
commit | ea59b186fbc1648d23b266edb1f01c60b0ed72c0 (patch) | |
tree | 4e328a32c3a57cc0680f637081db10df43b009d8 /gcc/fortran/decl.c | |
parent | 91000c66b9eb9b3ec0a763c78c0f070b9b256850 (diff) | |
download | gcc-ea59b186fbc1648d23b266edb1f01c60b0ed72c0.zip gcc-ea59b186fbc1648d23b266edb1f01c60b0ed72c0.tar.gz gcc-ea59b186fbc1648d23b266edb1f01c60b0ed72c0.tar.bz2 |
re PR fortran/41587 ([OOP] ICE with ALLOCATABLE CLASS components)
2012-05-06 Tobias Burnus <burnus@net-b.de>
PR fortran/41587
* decl.c (build_struct): Don't ignore FAILED status.
2012-05-06 Tobias Burnus <burnus@net-b.de>
PR fortran/41587
* gfortran.dg/class_array_13.f90: New.
From-SVN: r187214
Diffstat (limited to 'gcc/fortran/decl.c')
-rw-r--r-- | gcc/fortran/decl.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c index 4da21c3..e166bc9 100644 --- a/gcc/fortran/decl.c +++ b/gcc/fortran/decl.c @@ -1658,7 +1658,10 @@ scalar: bool delayed = (gfc_state_stack->sym == c->ts.u.derived) || (!c->ts.u.derived->components && !c->ts.u.derived->attr.zero_comp); - return gfc_build_class_symbol (&c->ts, &c->attr, &c->as, delayed); + gfc_try t2 = gfc_build_class_symbol (&c->ts, &c->attr, &c->as, delayed); + + if (t != FAILURE) + t = t2; } return t; |