diff options
Diffstat (limited to 'gcc-4.8/gcc/testsuite/gcc.c-torture/execute/pr58726.c')
-rw-r--r-- | gcc-4.8/gcc/testsuite/gcc.c-torture/execute/pr58726.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/gcc-4.8/gcc/testsuite/gcc.c-torture/execute/pr58726.c b/gcc-4.8/gcc/testsuite/gcc.c-torture/execute/pr58726.c new file mode 100644 index 000000000..9fa8b6953 --- /dev/null +++ b/gcc-4.8/gcc/testsuite/gcc.c-torture/execute/pr58726.c @@ -0,0 +1,26 @@ +/* PR rtl-optimization/58726 */ + +int a, c; +union { int f1; int f2 : 1; } b; + +short +foo (short p) +{ + return p < 0 ? p : a; +} + +int +main () +{ + if (sizeof (short) * __CHAR_BIT__ != 16 + || sizeof (int) * __CHAR_BIT__ != 32) + return 0; + b.f1 = 56374; + unsigned short d; + int e = b.f2; + d = e == 0 ? b.f1 : 0; + c = foo (d); + if (c != (short) 56374) + __builtin_abort (); + return 0; +} |