20011126-2.c

来自「this is a gcc file, you can download it 」· C语言 代码 · 共 44 行

C
44
字号
/* Problem originally visible on ia64.   There is a partial redundancy of "in + 1" that makes GCSE want to   transform the final while loop to      p = in + 1;     tmp = p;     ...     goto start;   top:     tmp = tmp + 1;   start:     in = tmp;     if (in < p) goto top;   We miscalculate the number of loop iterations as (p - tmp) = 0   instead of (p - in) = 1, which results in overflow in the doloop   optimization.  */static const char *test (const char *in, char *out){  while (1)    {      if (*in == 'a')	{	  const char *p = in + 1;	  while (*p == 'x')	    ++p;	  if (*p == 'b')	    return p;	  while (in < p)	    *out++ = *in++;	}    }}int main (){  char out[4];  test ("aab", out);  return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?