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

Reply via email to