PR c++/79143
[official-gcc.git] / gcc / testsuite / g++.dg / cpp1z / inh-ctor38.C
blobfbee8ca5c9edd896262ee61cdd6c43c9643b03db
1 // { dg-do run { target c++11 } }
2 // PR78495 failed to propagate pass-by-value struct to base ctor.
4 struct Ptr {
5   void *ptr = 0;
7   Ptr() {}
8   Ptr(Ptr const&) = delete;
9   Ptr(Ptr&& other) : ptr (other.ptr) {}
12 struct Base {
13   Ptr val;
14   Base(Ptr val_) : val(static_cast<Ptr&&>(val_)) {}
17 struct Derived: Base {
18   using Base::Base;
21 void *Foo () {
22   Ptr ptr;
24   Derived d(static_cast<Ptr&&>(ptr));
26   return d.val.ptr;
29 int main () {
30   return Foo () != 0;