aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2019-04-16 21:06:41 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2019-04-16 21:06:41 +0200
commit0382a41d63c0a99ac2f92d831f31af8b6203b2f3 (patch)
treea390f90c5d6186f483ab404386c124eec7769dc3 /gcc
parent590df85d1ce9d80e5e628a44a8d7fa03bf02a09c (diff)
downloadgcc-0382a41d63c0a99ac2f92d831f31af8b6203b2f3.zip
gcc-0382a41d63c0a99ac2f92d831f31af8b6203b2f3.tar.gz
gcc-0382a41d63c0a99ac2f92d831f31af8b6203b2f3.tar.bz2
re PR c++/86953 (compiler crashes with constexpr operator== and specific struct (cxx_eval_bit_field_ref, at cp/constexpr.c:2704))
PR c++/86953 * g++.dg/cpp0x/constexpr-86953.C: New test. From-SVN: r270396
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/constexpr-86953.C19
2 files changed, 24 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 96d6b1e..6abbc57 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-04-16 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/86953
+ * g++.dg/cpp0x/constexpr-86953.C: New test.
+
2019-04-16 Dominique d'Humieres <dominiq@gcc.gnu.org>
* g++.dg/lto/pr89358_0.C: Replace dg-* with dg-lto-*.
diff --git a/gcc/testsuite/g++.dg/cpp0x/constexpr-86953.C b/gcc/testsuite/g++.dg/cpp0x/constexpr-86953.C
new file mode 100644
index 0000000..2eabe48
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/constexpr-86953.C
@@ -0,0 +1,19 @@
+// PR c++/86953
+// { dg-do run { target c++11 } }
+// { dg-options "-O2" }
+
+struct B {
+ double x;
+ bool y, z;
+ constexpr bool operator== (const B& o) const noexcept
+ {
+ return x == o.x && y == o.y && z == o.z;
+ }
+ constexpr bool operator!= (const B& o) const noexcept { return !(*this == o); }
+};
+
+int
+main ()
+{
+ bool b = B{} == B{};
+}