1#define MAX (sizeof(int) * __CHAR_BIT__) 2 3static int lmax(int a) 4{ 5 return 1 << MAX; 6} 7 8static int lneg(int a) 9{ 10 return 1 << -1; 11} 12 13static int rmax(int a) 14{ 15 return 1 >> MAX; 16} 17 18static int rneg(int a) 19{ 20 return 1 >> -1; 21} 22 23/* 24 * check-name: bad-shift 25 * check-command: test-linearize -Wno-decl $file 26 * 27 * check-output-start 28lmax: 29.L0: 30 <entry-point> 31 shl.32 %r1 <- $1, $32 32 ret.32 %r1 33 34 35lneg: 36.L2: 37 <entry-point> 38 shl.32 %r3 <- $1, $0xffffffff 39 ret.32 %r3 40 41 42rmax: 43.L4: 44 <entry-point> 45 asr.32 %r5 <- $1, $32 46 ret.32 %r5 47 48 49rneg: 50.L6: 51 <entry-point> 52 asr.32 %r7 <- $1, $0xffffffff 53 ret.32 %r7 54 55 56 * check-output-end 57 * 58 * check-error-start 59expand/bad-shift.c:5:21: warning: shift too big (32) for type int 60expand/bad-shift.c:10:21: warning: shift count is negative (-1) 61expand/bad-shift.c:15:21: warning: shift too big (32) for type int 62expand/bad-shift.c:20:21: warning: shift count is negative (-1) 63 * check-error-end 64 */ 65