26 lines
360 B
C
26 lines
360 B
C
/* { 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);
|
|
}
|
|
|