1extern void abort (void);
2
3#define assert(x) if(!(x)) abort()
4
5struct S1
6{
7  signed char f0;
8};
9
10int g_23 = 0;
11
12static struct S1
13foo (void)
14{
15  int *l_100 = &g_23;
16  int **l_110 = &l_100;
17  struct S1 l_128 = { 1 };
18  assert (l_100 == &g_23);
19  assert (l_100 == &g_23);
20  assert (l_100 == &g_23);
21  assert (l_100 == &g_23);
22  assert (l_100 == &g_23);
23  assert (l_100 == &g_23);
24  assert (l_100 == &g_23);
25  return l_128;
26}
27
28static signed char bar(signed char si1, signed char si2)
29{
30  return (si1 <= 0) ? si1 : (si2 * 2);
31}
32int main (void)
33{
34  struct S1 s = foo();
35  if (bar(0x99 ^ (s.f0 && 1), 1) != -104)
36    abort ();
37  return 0;
38}
39
40