On June 1, 2015 5:42:57 PM GMT+02:00, Aldy Hernandez <al...@redhat.com> wrote: >On 06/01/2015 04:04 AM, Richard Biener wrote: >> On Mon, Jun 1, 2015 at 10:03 AM, Richard Biener >> <richard.guent...@gmail.com> wrote: >>> On Sun, May 31, 2015 at 10:38 PM, Jason Merrill <ja...@redhat.com> >wrote: >>>> On 05/30/2015 08:52 PM, Aldy Hernandez wrote: >>>>> >>>>> On 05/29/2015 03:33 PM, Jason Merrill wrote: >>>>>> >>>>>> On 05/29/2015 03:26 PM, Richard Biener wrote: >>>>>>> >>>>>>> ISTR I had to mark the gimple reg used for the bound as >>>>>>> non-DECL_IGNORED for the LTO stuff. >>>>>> >>>>>> >>>>>> Let's go with that, then. >>>>> >>>>> >>>>> Well, I did play around with that option originally, but >temporaries do >>>>> not end up in the symbol table, so we won't see them to feed them >to >>>>> late_global_decl. >>>> >>>> >>>> The temporary has function scope, so I don't see why that would be >an issue. >>> >>> Yeah, we should walk it via the function_decl hook on the containing >function. >> >> Btw, the following was my gimplify.c hunk: >> >> diff --git a/gcc/gimplify.c b/gcc/gimplify.c >> index d822913..10a9318 100644 >> --- a/gcc/gimplify.c >> +++ b/gcc/gimplify.c >> @@ -8994,6 +8994,12 @@ gimplify_one_sizepos (tree *expr_p, gimple_seq >*stmt_p) >> *expr_p = unshare_expr (expr); >> >> gimplify_expr (expr_p, stmt_p, NULL, is_gimple_val, fb_rvalue); >> + >> + /* The possibly generated temporary is interesting for debug >information >> + to complete the VLA type sizes and bounds. Clear >DECL_IGNORED_P. */ >> + if (TREE_CODE (*expr_p) == VAR_DECL >> + && DECL_ARTIFICIAL (*expr_p)) >> + DECL_IGNORED_P (*expr_p) = false; > >We still have the problem that function locals in dwarf2out are seen in > >decls_for_scope by iterating through BLOCK_VARS, and temporaries do not > >live in BLOCK_VARS. > >How did they get picked up and annotated in your approach?
The size type ones are in BLOCJ_VARS IIRC (or I have to check the last posted patch for other related hunks). Richard. >Aldy