]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR c++/79520 (Spurious caching for constexpr arguments)
authorMarek Polacek <polacek@redhat.com>
Thu, 8 Aug 2019 17:54:58 +0000 (17:54 +0000)
committerMarek Polacek <mpolacek@gcc.gnu.org>
Thu, 8 Aug 2019 17:54:58 +0000 (17:54 +0000)
PR c++/79520
* g++.dg/cpp1y/constexpr-79520.C: New test.

From-SVN: r274214

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

index a9f6c54aa849d90c3e45dc6e9439f760bd24c265..c44e3795099ffacfbc2d36aecc62401d8596705c 100644 (file)
@@ -1,3 +1,8 @@
+2019-08-08  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/79520
+       * g++.dg/cpp1y/constexpr-79520.C: New test.
+
 2019-08-08  Richard Sandiford  <richard.sandiford@arm.com>
 
        * gcc.dg/pr79983.c (enum E): Don't allow an error about nested
diff --git a/gcc/testsuite/g++.dg/cpp1y/constexpr-79520.C b/gcc/testsuite/g++.dg/cpp1y/constexpr-79520.C
new file mode 100644 (file)
index 0000000..a53bb3e
--- /dev/null
@@ -0,0 +1,11 @@
+// PR c++/79520
+// { dg-do compile { target c++14 } }
+
+constexpr int f(int const& x) { return x; }
+
+constexpr struct S {
+    int x = 0;
+    constexpr S() {(void)f(x); x = 1;}
+} s;
+
+static_assert(f(s.x) == 1, "");