20040311-1.c
来自「用于进行gcc测试」· C语言 代码 · 共 69 行
C
69 行
/* Copyright (C) 2004 Free Software Foundation. Check that constant folding and RTL simplification of -(x >> y) doesn't break anything and produces the expected results. Written by Roger Sayle, 11th March 2004. */extern void abort (void);#define INT_BITS (sizeof(int)*8)int test1(int x){ return -(x >> (INT_BITS-1));}int test2(unsigned int x){ return -((int)(x >> (INT_BITS-1)));}int test3(int x){ int y; y = INT_BITS-1; return -(x >> y);}int test4(unsigned int x){ int y; y = INT_BITS-1; return -((int)(x >> y));}int main(){ if (test1(0) != 0) abort (); if (test1(1) != 0) abort (); if (test1(-1) != 1) abort (); if (test2(0) != 0) abort (); if (test2(1) != 0) abort (); if (test2((unsigned int)-1) != -1) abort (); if (test3(0) != 0) abort (); if (test3(1) != 0) abort (); if (test3(-1) != 1) abort (); if (test4(0) != 0) abort (); if (test4(1) != 0) abort (); if (test4((unsigned int)-1) != -1) abort (); return 0;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?