aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Carlini <paolo.carlini@oracle.com>2017-03-09 11:51:29 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2017-03-09 11:51:29 +0000
commit35f77c2855c08fa329638e05d29b9b0d18caa5c1 (patch)
treefd1d5ef97835f0f930e022eafbe5aab341b25987
parent88119b464e7407b5b455d0c36df16602a569a348 (diff)
downloadgcc-35f77c2855c08fa329638e05d29b9b0d18caa5c1.zip
gcc-35f77c2855c08fa329638e05d29b9b0d18caa5c1.tar.gz
gcc-35f77c2855c08fa329638e05d29b9b0d18caa5c1.tar.bz2
re PR c++/71966 (ICE on invalid C++11 code (undefined constructor used in a constant expression): in cp_build_addr_expr_1, at cp/typeck.c:5671)
2017-03-09 Paolo Carlini <paolo.carlini@oracle.com> PR c++/71966 * g++.dg/cpp0x/pr71966-1.C: New. * g++.dg/cpp0x/pr71966-2.C: Likewise. From-SVN: r246000
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/pr71966-1.C13
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/pr71966-2.C15
3 files changed, 34 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index f576273..98f8733 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2017-03-09 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/71966
+ * g++.dg/cpp0x/pr71966-1.C: New.
+ * g++.dg/cpp0x/pr71966-2.C: Likewise.
+
2017-03-09 Martin Liska <mliska@suse.cz>
PR tree-optimization/79631
diff --git a/gcc/testsuite/g++.dg/cpp0x/pr71966-1.C b/gcc/testsuite/g++.dg/cpp0x/pr71966-1.C
new file mode 100644
index 0000000..7632720
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/pr71966-1.C
@@ -0,0 +1,13 @@
+// PR c++/71966
+// { dg-do compile { target c++11 } }
+
+struct A
+{
+ constexpr A (int); // { dg-message "never defined" }
+ constexpr operator int () const { return 0; }
+};
+
+template < int > struct B {};
+
+constexpr A a = 0; // { dg-error "before its definition" }
+B < a > b;
diff --git a/gcc/testsuite/g++.dg/cpp0x/pr71966-2.C b/gcc/testsuite/g++.dg/cpp0x/pr71966-2.C
new file mode 100644
index 0000000..aedd4ce
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/pr71966-2.C
@@ -0,0 +1,15 @@
+// PR c++/71966
+// { dg-do compile { target c++11 } }
+
+struct A
+{
+ constexpr A (int); // { dg-message "never defined" }
+ constexpr operator int () const { return 0; }
+ int c;
+};
+
+template <int>
+struct B {};
+
+constexpr A a = 0; // { dg-error "before its definition" }
+B<a> b;