PR c++/3331
* init.c (resolve_offset_ref): Use build_indirect_ref.
[[Split portion of a mixed commit.]]
From-SVN: r49134.2
--- /dev/null
+// 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[];
+
+ int bad ()
+ {
+ this->*(bars[0].b) = 42; // { dg-bogus "read-only" "" }
+ }
+};
+
+const foo::bar foo::bars[] = { { &foo::a } };
+
+int main ()
+{ }