On 05/09/2016 12:41 AM, Richard Biener wrote: > On Fri, 6 May 2016, Richard Biener wrote: > >> On Fri, 6 May 2016, Richard Biener wrote: >> >>> >>> The following patch fixes another case of missing DECL_EXPR in the FE. >>> >>> Bootstrapped on x86_64-unknown-linux-gnu, testing in progress. >>> >>> Ok for trunk? >> >> Dominique noticed a FAIL early which is fixed by adjusting the patch >> to only handle TYPE_DECL TYPE_NAME like so: >> >> Index: gcc/fortran/trans-decl.c >> =================================================================== >> --- gcc/fortran/trans-decl.c (revision 235945) >> +++ gcc/fortran/trans-decl.c (working copy) >> @@ -3818,6 +3818,12 @@ gfc_trans_vla_type_sizes (gfc_symbol *sy >> } >> >> gfc_trans_vla_type_sizes_1 (type, body); >> + /* gfc_build_qualified_array may have built this type but left >> TYPE_NAME >> + pointing to the original type whose type sizes we need to expose to >> + the gimplifier unsharing. */ >> + if (TYPE_NAME (type) >> + && TREE_CODE (TYPE_NAME (type)) == TYPE_DECL) >> + gfc_add_expr_to_block (body, build1 (DECL_EXPR, type, TYPE_NAME >> (type))); >> } >> >> >> I've re-started testing. >> >> Ok with that change? >
Richard, yes Ok if all works. We are very short on reviewers right now, so very much appreciate your help here. (the below approach if you find it best) Jerry > It doesn't work fully either. Given also the original problem where > unshared IL exposes the need to visit the "unrelated" VLA types in > the gimplifier unsharing I tested the following patch instead which > resolves the issue as well. Furthermore it can't regress things > and at this point is the easiest way forward to unbreak fortran. > > Thus, bootstrapped and tested on x86_64-unknown-linux-gnu, applied to > trunk. > > I am testing if reverting my first fix is possible after this now. > > Richard.