re PR c++/77771 (internal compiler error: in cxx_eval_bit_field_ref, at cp/constexpr...
authorMarek Polacek <polacek@redhat.com>
Sat, 8 Jun 2019 00:17:13 +0000 (00:17 +0000)
committerMarek Polacek <mpolacek@gcc.gnu.org>
Sat, 8 Jun 2019 00:17:13 +0000 (00:17 +0000)
PR c++/77771
* g++.dg/cpp0x/constexpr-77771.C: New test.

From-SVN: r272068

gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/cpp0x/constexpr-77771.C [new file with mode: 0644]

index 80cb5cca09100b5f86c8f3cc68763ccf6e881ab4..0ea046501749bcbadc63f8a718c4207110066968 100644 (file)
@@ -1,3 +1,8 @@
+2019-06-07  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/77771
+       * g++.dg/cpp0x/constexpr-77771.C: New test.
+
 2019-06-07  John David Anglin  <danglin@gcc.gnu.org>
 
        * lib/scanasm.exp (dg-function-on-line): Add pattern for hppa*-*-linux*.
diff --git a/gcc/testsuite/g++.dg/cpp0x/constexpr-77771.C b/gcc/testsuite/g++.dg/cpp0x/constexpr-77771.C
new file mode 100644 (file)
index 0000000..fca83d9
--- /dev/null
@@ -0,0 +1,16 @@
+// PR c++/77771
+// { dg-do compile { target c++11 } }
+// { dg-options "-O" }
+
+struct S
+{
+  char x[2];
+  unsigned y;
+};
+
+constexpr bool func(const S s)
+{
+    return s.x[0] != 42 || s.x[1] != 0;
+}
+
+static_assert(func({{42, 7}, 0}), "");