aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/pr103028.c
blob: df96c62ddd36dd25e88043eec237f665493aa104 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/* { dg-do compile } */
/* { dg-options "-fif-conversion2 -Og" } */
/* { dg-options "-fif-conversion2 -Og -march=z9-ec" { target { s390x-*-* } } } */

unsigned char x;
int foo(void)
{
  unsigned long long i = x;
  i = i + 0x80000000;
  unsigned long long t = 0xffffffff;

  if (i > t) {
    unsigned long long ii;
    asm("":"=g"(ii):"0"(i));
    if ((ii <= t))
      __builtin_trap();
    return x;
  }

 return 0;
}