| /* { dg-do compile } */ | |
| template <typename To, typename From> | |
| 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<double> (*(unsigned long long *) b); | |
| } | |