/* Copyright (C) 2002 Free Software Foundation Check that constant folding of shift operations is working. Roger Sayle, 10th October 2002. */ extern void abort (void); extern void link_error (void); void utest (unsigned int x) { if (x >> 0 != x) link_error (); if (x << 0 != x) link_error (); if (0 << x != 0) link_error (); if (0 >> x != 0) link_error (); if (-1 >> x != -1) link_error (); if (~0 >> x != ~0) link_error (); } void stest (int x) { if (x >> 0 != x) link_error (); if (x << 0 != x) link_error (); if (0 << x != 0) link_error (); if (0 >> x != 0) link_error (); } int main () { utest(9); utest(0); stest(9); stest(0); return 0; } #ifndef __OPTIMIZE__ void link_error () { abort (); } #endif