aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2019-05-15 12:14:01 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2019-05-15 12:14:01 +0000
commit6b94351209e4f044abdea22e8a8eb529abe0109b (patch)
tree47b1273b8ffef8aaedd6e40c27dfd54b94140a4a /gcc
parentc221c627cb03585892bbcae2334c013b8fdf4b41 (diff)
downloadgcc-6b94351209e4f044abdea22e8a8eb529abe0109b.zip
gcc-6b94351209e4f044abdea22e8a8eb529abe0109b.tar.gz
gcc-6b94351209e4f044abdea22e8a8eb529abe0109b.tar.bz2
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 <rguenther@suse.de> 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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/c-family/ChangeLog7
-rw-r--r--gcc/c-family/c-common.c2
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index 59810b8..b005b81 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -1,3 +1,10 @@
+2019-05-15 Richard Biener <rguenther@suse.de>
+
+ 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 <nathan@acm.org>
* 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 3c2f7a9..37d10cc 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;
}