pr21559.c

来自「用于进行gcc测试」· C语言 代码 · 共 44 行

C
44
字号
/* { dg-do compile } *//* { dg-options "-O2 -fdump-tree-vrp1-details" } */static int blocksize = 4096;int bar (int);void foo (void){  int toread;  int bytes;  static char eof_reached = 0;  toread = blocksize;  bytes = 1;  while (toread != 0)    {      bytes = bar (toread);      if (bytes <= 0)        {          if (bytes < 0)            continue;          break;        }      toread -= bytes;    }  if (bytes == 0)    eof_reached = 1;}/* First, we should simplify the bits < 0 test within the loop.  *//* { dg-final { scan-tree-dump-times "Simplified relational" 1 "vrp1" } } *//* Second, we should thread the edge out of the loop via the break   statement.  We also realize that the final bytes == 0 test is useless,   and thread over it.  *//* { dg-final { scan-tree-dump-times "Threaded jump" 3 "vrp1" } } *//* { dg-final { cleanup-tree-dump "vrp1" } } */

⌨️ 快捷键说明

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