// PR c++/98329 // { dg-do compile { target c++20 } } template constexpr To foo (const From &from) { return __builtin_bit_cast (To, &from); } template constexpr To bar (const From &from) { return __builtin_bit_cast (To, *from); } template constexpr To baz (const From &from) { return __builtin_bit_cast (To, **from); } template constexpr To qux (const From &from) { return __builtin_bit_cast (To, -from); } void test () { int i = 0; int *j = &i; int **k = &j; foo (i); bar (j); baz (k); qux (i); }