aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2008-06-11 08:30:55 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2008-06-11 08:30:55 +0200
commit9de0e916168eb3d8853c02803ce15736164338f4 (patch)
treea0a742776c1c2e10cdba99f222d1055da8ca5ce5
parent976e44e324f254780ea9b09347ea0e970e40691c (diff)
downloadgcc-9de0e916168eb3d8853c02803ce15736164338f4.zip
gcc-9de0e916168eb3d8853c02803ce15736164338f4.tar.gz
gcc-9de0e916168eb3d8853c02803ce15736164338f4.tar.bz2
re PR c++/36408 (ICE with statement expression in template)
PR c++/36408 * semantics.c (stmt_expr_value_expr): Don't crash on empty STATEMENT_LIST. From-SVN: r136651
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/semantics.c2
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 74ae4ae..897a54e 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2008-06-09 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/36408
+ * semantics.c (stmt_expr_value_expr): Don't crash on empty
+ STATEMENT_LIST.
+
2008-06-08 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/35242
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c
index 83d2339..f39b8d1 100644
--- a/gcc/cp/semantics.c
+++ b/gcc/cp/semantics.c
@@ -1778,7 +1778,7 @@ stmt_expr_value_expr (tree stmt_expr)
if (TREE_CODE (t) == BIND_EXPR)
t = BIND_EXPR_BODY (t);
- if (TREE_CODE (t) == STATEMENT_LIST)
+ if (TREE_CODE (t) == STATEMENT_LIST && STATEMENT_LIST_TAIL (t))
t = STATEMENT_LIST_TAIL (t)->stmt;
if (TREE_CODE (t) == EXPR_STMT)