diff options
author | Jakub Jelinek <jakub@redhat.com> | 2012-08-24 23:46:17 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2012-08-24 23:46:17 +0200 |
commit | 6f8f67e97de542d658c759ab1e55d8b7cfed4f58 (patch) | |
tree | 5e2df0986a315f00dbbcbcbdb12c31359df2f218 /gcc/gimplify.c | |
parent | 6265d07ce0d8cdbfba7d3057804441d1a14f5b73 (diff) | |
download | gcc-6f8f67e97de542d658c759ab1e55d8b7cfed4f58.zip gcc-6f8f67e97de542d658c759ab1e55d8b7cfed4f58.tar.gz gcc-6f8f67e97de542d658c759ab1e55d8b7cfed4f58.tar.bz2 |
re PR c/54363 (ICE when compiling malformed struct initializers)
PR c/54363
* gimplify.c (optimize_compound_literals_in_ctor): Only recurse
if init is a CONSTRUCTOR.
* gcc.dg/pr54363.c: New test.
From-SVN: r190657
Diffstat (limited to 'gcc/gimplify.c')
-rw-r--r-- | gcc/gimplify.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/gimplify.c b/gcc/gimplify.c index ed2474f..2793027 100644 --- a/gcc/gimplify.c +++ b/gcc/gimplify.c @@ -3857,7 +3857,8 @@ optimize_compound_literals_in_ctor (tree orig_ctor) if (!TREE_ADDRESSABLE (value) && !TREE_ADDRESSABLE (decl) - && init) + && init + && TREE_CODE (init) == CONSTRUCTOR) newval = optimize_compound_literals_in_ctor (init); } if (newval == value) |