1 /* Signed left-shift is implementation-defined in C89 (and see 2 DR#081), not undefined. Bug 7284 from Al Grant (AlGrant at 3 myrealbox.com). */ 4 5 /* { dg-require-effective-target int32plus } */ 6 /* { dg-options "-std=c89" } */ 7 8 extern void abort (void); 9 extern void exit (int); 10 11 int f(int n)12f (int n) 13 { 14 return (n << 24) / (1 << 23); 15 } 16 17 volatile int x = 128; 18 19 int main(void)20main (void) 21 { 22 if (f(x) != -256) 23 abort (); 24 exit (0); 25 } 26