diff gcc/testsuite/g++.dg/other/const2.C @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gcc/testsuite/g++.dg/other/const2.C	Fri Oct 27 22:46:09 2017 +0900
@@ -0,0 +1,22 @@
+// PR c++/3331: just because 'this' is readonly and bars[0].b is readonly
+// doesn't mean that the result of the member reference is readonly.
+
+struct foo
+{
+  int a;
+
+  struct bar
+  { int foo::* b ;};
+
+  static const bar bars[];
+
+  void bad ()
+  {
+    this->*(bars[0].b) = 42; // { dg-bogus "read-only" }
+  }
+};
+
+const foo::bar foo::bars[] = { { &foo::a } };
+
+int main ()
+{ }