aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.c-torture/compile/pr50380.c
blob: 3f03cbbc31f6e09aa5c3f50a55cb8c0c68a53e38 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
__attribute__ ((__noreturn__)) extern void fail (void);

char x;

/* This used to get stuck in an infinite loop in find_comparison_args
   when compiling this function for MIPS at -O2.  */

void foo (const unsigned char y)
{
   ((void) (__builtin_expect((!! y == y), 1) ? 0 : (fail (), 0)));
   x = ! y;
}

/* This used to similarly get stuck when compiling for PowerPC at -O2.  */

int foo2 (int arg)
{
  if (arg != !arg)
    fail ();
  if (arg)
    fail ();
}