// PR c++/89074 | |
// { dg-do compile { target c++17 } } | |
struct S { int s; }; | |
struct T : public S { }; | |
struct U : public T { }; | |
constexpr bool | |
foo () | |
{ | |
U a[] = { 1, 2, 3, 4 }; | |
U b[] = { 5, 6, 7, 8 }; | |
T *c = (T *) a + 1; | |
S *d = (S *) c + 2; | |
S *e = (S *) b + 1; | |
if (a + 0 == b + 0) | |
return false; | |
if (d == e) | |
return false; | |
return true; | |
} | |
static_assert (foo (), ""); |