/* { dg-do run } */ /* { dg-options "-O2 -mno-sse" } */ int flag; union { double f; unsigned long long i; } u; void __attribute__((noinline)) init () { flag = 1; u.i = 18442936822990639076ULL; } unsigned long long __attribute__((noinline)) test () { if (flag) return u.i; else return u.f; } int main() { init (); if (test () != 18442936822990639076ULL) __builtin_abort (); return 0; }