Mercurial > hg > CbC > CbC_gcc
diff gcc/testsuite/g++.dg/cpp1z/inh-ctor38.C @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children | 84e7813d76e9 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gcc/testsuite/g++.dg/cpp1z/inh-ctor38.C Fri Oct 27 22:46:09 2017 +0900 @@ -0,0 +1,31 @@ +// { dg-do run { target c++11 } } +// PR78495 failed to propagate pass-by-value struct to base ctor. + +struct Ptr { + void *ptr = 0; + + Ptr() {} + Ptr(Ptr const&) = delete; + Ptr(Ptr&& other) : ptr (other.ptr) {} +}; + +struct Base { + Ptr val; + Base(Ptr val_) : val(static_cast<Ptr&&>(val_)) {} +}; + +struct Derived: Base { + using Base::Base; +}; + +void *Foo () { + Ptr ptr; + + Derived d(static_cast<Ptr&&>(ptr)); + + return d.val.ptr; +} + +int main () { + return Foo () != 0; +}