Message ID | 20190225150452.GW7611@tucnak |
---|---|
State | New |
Headers | show |
Series | [committed] Add the primary testcase from PR c++/89285 | expand |
--- gcc/testsuite/g++.dg/cpp1y/constexpr-89285-2.C.jj 2019-02-25 15:47:55.189265284 +0100 +++ gcc/testsuite/g++.dg/cpp1y/constexpr-89285-2.C 2019-02-25 15:47:34.937592247 +0100 @@ -0,0 +1,20 @@ +// PR c++/89285 +// { dg-do compile { target c++14 } } + +struct A { + int a {}; +}; +struct B { + int b {}; + constexpr B (A *x) { + int *c = &x->a; + while (*c) + c = reinterpret_cast<int *>((reinterpret_cast<char *>(c) + *c)); + *c = reinterpret_cast<char *>(this) - reinterpret_cast<char *>(c); + } +}; +struct C : A { + B bar {this}; +}; + +C foo {};