1/* Used to be miscompiled at -O0 due to incorrect choice of sign extension
2   vs. zero extension.  __attribute__ ((noinline)) added to try to make it
3   fail at higher optimization levels too.  */
4
5extern void abort (void);
6
7long long __attribute__ ((noinline))
8div (long long val)
9{
10  return val / 32768;
11}
12
13int main (void)
14{
15  long long d1 = -990000000;
16  long long d2 = div(d1);
17  if (d2 != -30212)
18    abort ();
19  return 0;
20}
21
22