From c5bdb340d6458e3df097f58d611e75f999e07653 Mon Sep 17 00:00:00 2001 From: Richard Guenther Date: Wed, 9 Nov 2011 08:32:26 +0000 Subject: [PATCH] gimple-fold.c (canonicalize_constructor_val): Mark address-taken variables addressable. 2011-11-09 Richard Guenther * gimple-fold.c (canonicalize_constructor_val): Mark address-taken variables addressable. From-SVN: r181197 --- gcc/ChangeLog | 5 +++++ gcc/gimple-fold.c | 9 ++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 12425f4a54c8..e2d23ea16c18 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2011-11-09 Richard Guenther + + * gimple-fold.c (canonicalize_constructor_val): Mark + address-taken variables addressable. + 2011-11-09 Ira Rosen PR tree-optimization/51015 diff --git a/gcc/gimple-fold.c b/gcc/gimple-fold.c index 08b7ccc83dbd..0da5eef18a2d 100644 --- a/gcc/gimple-fold.c +++ b/gcc/gimple-fold.c @@ -137,9 +137,12 @@ canonicalize_constructor_val (tree cval) || TREE_CODE (base) == FUNCTION_DECL) && !can_refer_decl_in_current_unit_p (base)) return NULL_TREE; - if (cfun && gimple_referenced_vars (cfun) - && base && TREE_CODE (base) == VAR_DECL) - add_referenced_var (base); + if (base && TREE_CODE (base) == VAR_DECL) + { + TREE_ADDRESSABLE (base) = 1; + if (cfun && gimple_referenced_vars (cfun)) + add_referenced_var (base); + } /* Fixup types in global initializers. */ if (TREE_TYPE (TREE_TYPE (cval)) != TREE_TYPE (TREE_OPERAND (cval, 0))) cval = build_fold_addr_expr (TREE_OPERAND (cval, 0)); -- 2.47.2