From 6b94351209e4f044abdea22e8a8eb529abe0109b Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Wed, 15 May 2019 12:14:01 +0000 Subject: [PATCH] re PR tree-optimization/90474 (ICE: verify_gimple failed (error: DECL_GIMPLE_REG_P set on a variable with address taken; error: invalid address operand in MEM_REF)) 2019-05-15 Richard Biener PR c/90474 * c-common.c (c_common_mark_addressable_vec): Also mark a COMPOUND_LITERAL_EXPR_DECL addressable similar to c_mark_addressable. From-SVN: r271206 --- gcc/c-family/ChangeLog | 7 +++++++ gcc/c-family/c-common.c | 2 ++ 2 files changed, 9 insertions(+) diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index 59810b8a0e0..b005b810f43 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,10 @@ +2019-05-15 Richard Biener + + PR c/90474 + * c-common.c (c_common_mark_addressable_vec): Also mark + a COMPOUND_LITERAL_EXPR_DECL addressable similar to + c_mark_addressable. + 2019-05-06 Nathan Sidwell * c-opts.c (handle_defered_opts): Rename struct deps to struc mkdeps. diff --git a/gcc/c-family/c-common.c b/gcc/c-family/c-common.c index 3c2f7a9d1c7..37d10cced0f 100644 --- a/gcc/c-family/c-common.c +++ b/gcc/c-family/c-common.c @@ -6554,6 +6554,8 @@ c_common_mark_addressable_vec (tree t) return; if (!VAR_P (t) || !DECL_HARD_REGISTER (t)) TREE_ADDRESSABLE (t) = 1; + if (TREE_CODE (t) == COMPOUND_LITERAL_EXPR) + TREE_ADDRESSABLE (COMPOUND_LITERAL_EXPR_DECL (t)) = 1; } -- 2.30.2