diff options
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.c-torture/compile/920410-1.c')
-rw-r--r-- | gcc-4.9/gcc/testsuite/gcc.c-torture/compile/920410-1.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.c-torture/compile/920410-1.c b/gcc-4.9/gcc/testsuite/gcc.c-torture/compile/920410-1.c new file mode 100644 index 000000000..4bfa7a665 --- /dev/null +++ b/gcc-4.9/gcc/testsuite/gcc.c-torture/compile/920410-1.c @@ -0,0 +1,30 @@ +int alloc_float(f) + float f; +{ union + { + float f; + int i; + } + u; + u.f=f; + return u.i&~1; +} + +float c_float(int obj) +{ union + { + float f; + int i; + } u; + + u.i=obj; + return u.f; +} + +main() +{ int x=alloc_float(1.2); + int y=alloc_float(5.7); + int z=alloc_float(c_float(x)*c_float(y)); + + printf("%g\n",(double)c_float(z)); +} |