]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR c++/58565 ([c++11] ICE with label in statement expression)
authorPaolo Carlini <paolo.carlini@oracle.com>
Wed, 2 Oct 2013 10:44:23 +0000 (10:44 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Wed, 2 Oct 2013 10:44:23 +0000 (10:44 +0000)
/cp
2013-10-02  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/58565
* semantics.c (potential_constant_expression_1): Handle LABEL_EXPR.

/testsuite
2013-10-02  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/58565
* g++.dg/parse/crash64.C: New.

From-SVN: r203109

gcc/cp/ChangeLog
gcc/cp/semantics.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/parse/crash64.C [new file with mode: 0644]

index 1ec1cd345cee2a656bf13f1e79fcc740cf9fdcd8..55655c60bec02fdcfac0bacd901954b4967eab90 100644 (file)
@@ -1,3 +1,8 @@
+2013-10-02  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/58565
+       * semantics.c (potential_constant_expression_1): Handle LABEL_EXPR.
+
 2013-10-01  Paolo Carlini  <paolo.carlini@oracle.com>
 
        PR c++/58563
index 13277948bf4355d7bbdd9ae7b0aa3759752f3ba2..a7874e765a7a09ea0f5b0ad4782f3121c7447f95 100644 (file)
@@ -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:
index 2fb3cc63e5c4bc73f542dcf7eb90d1d83d72f8bc..cbeb33dd7e7fe38a89fbbb23aa4b89f6a7ffa201 100644 (file)
@@ -1,3 +1,8 @@
+2013-10-02  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/58565
+       * g++.dg/parse/crash64.C: New.
+
 2013-10-02  Yufeng Zhang  <yufeng.zhang@arm.com>
 
        * 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 (file)
index 0000000..9e1dfea
--- /dev/null
@@ -0,0 +1,7 @@
+// PR c++/58565
+// { dg-options "" }
+
+void foo()
+{
+  int i = ({ L: ; });  // { dg-error "void value not ignored" }
+}