aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2014-03-25 10:30:10 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2014-03-25 10:30:10 +0100
commit8bcc90b0af63817589ea34fe0aff5d785d704444 (patch)
tree95d6d543658e14b87d9a9992c639185f613e010f
parent51ee05d03862c94da9d204fcb26c3c7602d40a25 (diff)
downloadgcc-8bcc90b0af63817589ea34fe0aff5d785d704444.zip
gcc-8bcc90b0af63817589ea34fe0aff5d785d704444.tar.gz
gcc-8bcc90b0af63817589ea34fe0aff5d785d704444.tar.bz2
re PR c++/60331 (ICE with OpenMP #pragma omp declare reduction in template class)
PR c++/60331 * semantics.c (potential_constant_expression_1): Handle DECL_EXPR. * testsuite/libgomp.c++/udr-11.C: New test. * testsuite/libgomp.c++/udr-12.C: New test. * testsuite/libgomp.c++/udr-13.C: New test. * testsuite/libgomp.c++/udr-14.C: New test. * testsuite/libgomp.c++/udr-15.C: New test. * testsuite/libgomp.c++/udr-16.C: New test. * testsuite/libgomp.c++/udr-17.C: New test. * testsuite/libgomp.c++/udr-18.C: New test. * testsuite/libgomp.c++/udr-19.C: New test. From-SVN: r208806
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/semantics.c1
-rw-r--r--libgomp/ChangeLog13
-rw-r--r--libgomp/testsuite/libgomp.c++/udr-11.C4
-rw-r--r--libgomp/testsuite/libgomp.c++/udr-12.C4
-rw-r--r--libgomp/testsuite/libgomp.c++/udr-13.C4
-rw-r--r--libgomp/testsuite/libgomp.c++/udr-14.C4
-rw-r--r--libgomp/testsuite/libgomp.c++/udr-15.C4
-rw-r--r--libgomp/testsuite/libgomp.c++/udr-16.C4
-rw-r--r--libgomp/testsuite/libgomp.c++/udr-17.C4
-rw-r--r--libgomp/testsuite/libgomp.c++/udr-18.C4
-rw-r--r--libgomp/testsuite/libgomp.c++/udr-19.C4
12 files changed, 56 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index e022990..a5a3695 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2014-03-25 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/60331
+ * semantics.c (potential_constant_expression_1): Handle
+ DECL_EXPR.
+
2014-03-24 Adam Butcher <adam@jessamine.co.uk>
PR c++/60627
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c
index 886fbb8..bb5246a 100644
--- a/gcc/cp/semantics.c
+++ b/gcc/cp/semantics.c
@@ -10253,6 +10253,7 @@ potential_constant_expression_1 (tree t, bool want_rval, tsubst_flags_t flags)
case DO_STMT:
case FOR_STMT:
case WHILE_STMT:
+ case DECL_EXPR:
if (flags & tf_error)
error ("expression %qE is not a constant-expression", t);
return false;
diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog
index e617561..d3cda25 100644
--- a/libgomp/ChangeLog
+++ b/libgomp/ChangeLog
@@ -1,3 +1,16 @@
+2014-03-25 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/60331
+ * testsuite/libgomp.c++/udr-11.C: New test.
+ * testsuite/libgomp.c++/udr-12.C: New test.
+ * testsuite/libgomp.c++/udr-13.C: New test.
+ * testsuite/libgomp.c++/udr-14.C: New test.
+ * testsuite/libgomp.c++/udr-15.C: New test.
+ * testsuite/libgomp.c++/udr-16.C: New test.
+ * testsuite/libgomp.c++/udr-17.C: New test.
+ * testsuite/libgomp.c++/udr-18.C: New test.
+ * testsuite/libgomp.c++/udr-19.C: New test.
+
2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
Update copyright years
diff --git a/libgomp/testsuite/libgomp.c++/udr-11.C b/libgomp/testsuite/libgomp.c++/udr-11.C
new file mode 100644
index 0000000..5d01446
--- /dev/null
+++ b/libgomp/testsuite/libgomp.c++/udr-11.C
@@ -0,0 +1,4 @@
+// { dg-do run }
+// { dg-options "-fopenmp -std=c++11" }
+
+#include "udr-1.C"
diff --git a/libgomp/testsuite/libgomp.c++/udr-12.C b/libgomp/testsuite/libgomp.c++/udr-12.C
new file mode 100644
index 0000000..58112eb
--- /dev/null
+++ b/libgomp/testsuite/libgomp.c++/udr-12.C
@@ -0,0 +1,4 @@
+// { dg-do run }
+// { dg-options "-fopenmp -std=c++11" }
+
+#include "udr-2.C"
diff --git a/libgomp/testsuite/libgomp.c++/udr-13.C b/libgomp/testsuite/libgomp.c++/udr-13.C
new file mode 100644
index 0000000..a9c8c60
--- /dev/null
+++ b/libgomp/testsuite/libgomp.c++/udr-13.C
@@ -0,0 +1,4 @@
+// { dg-do run }
+// { dg-options "-fopenmp -std=c++11" }
+
+#include "udr-3.C"
diff --git a/libgomp/testsuite/libgomp.c++/udr-14.C b/libgomp/testsuite/libgomp.c++/udr-14.C
new file mode 100644
index 0000000..6cb4829
--- /dev/null
+++ b/libgomp/testsuite/libgomp.c++/udr-14.C
@@ -0,0 +1,4 @@
+// { dg-do run }
+// { dg-options "-fopenmp -std=c++11" }
+
+#include "udr-4.C"
diff --git a/libgomp/testsuite/libgomp.c++/udr-15.C b/libgomp/testsuite/libgomp.c++/udr-15.C
new file mode 100644
index 0000000..d6aaf87
--- /dev/null
+++ b/libgomp/testsuite/libgomp.c++/udr-15.C
@@ -0,0 +1,4 @@
+// { dg-do run }
+// { dg-options "-fopenmp -std=c++11" }
+
+#include "udr-5.C"
diff --git a/libgomp/testsuite/libgomp.c++/udr-16.C b/libgomp/testsuite/libgomp.c++/udr-16.C
new file mode 100644
index 0000000..acf4ff2
--- /dev/null
+++ b/libgomp/testsuite/libgomp.c++/udr-16.C
@@ -0,0 +1,4 @@
+// { dg-do run }
+// { dg-options "-fopenmp -std=c++11" }
+
+#include "udr-6.C"
diff --git a/libgomp/testsuite/libgomp.c++/udr-17.C b/libgomp/testsuite/libgomp.c++/udr-17.C
new file mode 100644
index 0000000..a5b62f8
--- /dev/null
+++ b/libgomp/testsuite/libgomp.c++/udr-17.C
@@ -0,0 +1,4 @@
+// { dg-do run }
+// { dg-options "-fopenmp -std=c++11" }
+
+#include "udr-7.C"
diff --git a/libgomp/testsuite/libgomp.c++/udr-18.C b/libgomp/testsuite/libgomp.c++/udr-18.C
new file mode 100644
index 0000000..5911e8e
--- /dev/null
+++ b/libgomp/testsuite/libgomp.c++/udr-18.C
@@ -0,0 +1,4 @@
+// { dg-do run }
+// { dg-options "-fopenmp -std=c++11" }
+
+#include "udr-8.C"
diff --git a/libgomp/testsuite/libgomp.c++/udr-19.C b/libgomp/testsuite/libgomp.c++/udr-19.C
new file mode 100644
index 0000000..801cab4
--- /dev/null
+++ b/libgomp/testsuite/libgomp.c++/udr-19.C
@@ -0,0 +1,4 @@
+// { dg-do run }
+// { dg-options "-fopenmp -std=c++11" }
+
+#include "udr-9.C"