diff options
author | Jakub Jelinek <jakub@redhat.com> | 2008-09-17 00:05:15 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2008-09-17 00:05:15 +0200 |
commit | 326a4d4ef1c3b80f4cfbf17f52a42c263abb25df (patch) | |
tree | d9d2e309acc892504ceaae7258e97d76c4d9fb0b /gcc/cp/semantics.c | |
parent | 08222495cc9ea47746057e95002b7a467309964c (diff) | |
download | gcc-326a4d4ef1c3b80f4cfbf17f52a42c263abb25df.tar.gz |
re PR c++/37531 (ICE with invalid array initialization)
PR c++/37531
* semantics.c (finish_compound_literal): Return error_mark_node if
type is errorneous.
* g++.dg/parse/crash47.C: New test.
From-SVN: r140400
Diffstat (limited to 'gcc/cp/semantics.c')
-rw-r--r-- | gcc/cp/semantics.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index cfd06bb08cb..c6f921a968d 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -2105,6 +2105,9 @@ finish_unary_op_expr (enum tree_code code, tree expr) tree finish_compound_literal (tree type, tree compound_literal) { + if (type == error_mark_node) + return error_mark_node; + if (!TYPE_OBJ_P (type)) { error ("compound literal of non-object type %qT", type); |