From 0eb3d6c6b602c7fbb290290ff853cb1ffe77e0c4 Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Wed, 2 Oct 2013 10:44:23 +0000 Subject: [PATCH] re PR c++/58565 ([c++11] ICE with label in statement expression) /cp 2013-10-02 Paolo Carlini PR c++/58565 * semantics.c (potential_constant_expression_1): Handle LABEL_EXPR. /testsuite 2013-10-02 Paolo Carlini PR c++/58565 * g++.dg/parse/crash64.C: New. From-SVN: r203109 --- gcc/cp/ChangeLog | 5 +++++ gcc/cp/semantics.c | 1 + gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/g++.dg/parse/crash64.C | 7 +++++++ 4 files changed, 18 insertions(+) create mode 100644 gcc/testsuite/g++.dg/parse/crash64.C diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 1ec1cd345ce..55655c60bec 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2013-10-02 Paolo Carlini + + PR c++/58565 + * semantics.c (potential_constant_expression_1): Handle LABEL_EXPR. + 2013-10-01 Paolo Carlini PR c++/58563 diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index 13277948bf4..a7874e765a7 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -8422,6 +8422,7 @@ potential_constant_expression_1 (tree t, bool want_rval, tsubst_flags_t flags) case OVERLOAD: case TEMPLATE_ID_EXPR: case LABEL_DECL: + case LABEL_EXPR: case CONST_DECL: case SIZEOF_EXPR: case ALIGNOF_EXPR: diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 2fb3cc63e5c..cbeb33dd7e7 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2013-10-02 Paolo Carlini + + PR c++/58565 + * g++.dg/parse/crash64.C: New. + 2013-10-02 Yufeng Zhang * gcc.dg/tree-ssa/slsr-40.c: New test. diff --git a/gcc/testsuite/g++.dg/parse/crash64.C b/gcc/testsuite/g++.dg/parse/crash64.C new file mode 100644 index 00000000000..9e1dfea6c32 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/crash64.C @@ -0,0 +1,7 @@ +// PR c++/58565 +// { dg-options "" } + +void foo() +{ + int i = ({ L: ; }); // { dg-error "void value not ignored" } +} -- 2.30.2