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?
Aldy