/* { dg-do compile } */ template static inline To bitwise_cast (From from) { union { From f; To t; } u; u.f = from; return u.t; } extern void foo (unsigned char *); double bar () { unsigned char b[sizeof (unsigned long long)]; foo (b); return bitwise_cast (*(unsigned long long *) b); }