ssa-ccp-2.c

来自「linux下编程用 编译软件」· C语言 代码 · 共 173 行

C
173
字号
/* { dg-do compile } */ /* { dg-options "-O2 -fdump-tree-optimized" } */extern void link_error (void);/* check that cprop for variables of different types still works even   if function calls or assignments to different types of data are   interposed.  */int test7 (int *intarr){  extern int foo7 (int);  int u = 7, v1;  foo7 (u);  v1 = u;  if (v1 != 7)    link_error ();  return v1;}int test77 (int *arr){  int u = 7, v1;  arr[0] = 4;  v1 = u;  if (v1 != 7)    link_error ();  return v1 + arr[0];}int test777 (void){  extern int foo(int *);  int u = 7, v1;  static int sarr[10];  sarr[0] = 4;  v1 = u;  if (v1 != 7)    link_error ();  foo (sarr);  return v1 + sarr[0];}int garr[10];int test7777 (void){  int u = 7, v1;  garr[0] = 4;  v1 = u;  if (v1 != 7)    link_error ();  return v1 + garr[0];}int test88 (int *arr){  static int l;  int v1;  l = 8;  arr[0] = 4;  v1 = l;  if (v1 != 8)    link_error ();  l = foo88 (l);  return v1 + arr[0];}int test888 (void){  static int l;  extern int foo(int *);  int v1;  static int sarr[10];  l = 8;  sarr[0] = 4;  v1 = l;  if (v1 != 8)    link_error ();  foo (sarr);  l = foo88(l);  return v1 + sarr[0];}int test8888 (void){  static int l;  int v1;  l = 8;  garr[0] = 4;  v1 = l;  if (v1 != 8)    link_error ();  return v1 + garr[0];}/* global var  */int g9;int garr9[10];int test9 (int *intarr){  extern int foo9 (int) __attribute__ ((const));  int h, v;  g9 = 9;  h = foo9 (g9);  v = g9;  if (v != 9)    link_error ();  return g9;}int test99 (int *intarr){  extern int foo9 (int) __attribute__ ((pure));  int h, v;  g9 = 9;  h = foo9 (g9);  v = g9;  if (v != 9)    link_error ();  return g9;}extern int foo99 (int);int test999 (int *arr){  static int l;  int v1;  g9 = 9;  l = 4;  v1 = g9;  if (v1 != 9)    link_error ();  l = foo99 (l);  return v1 + l;}int test9999 (void){  int v1;  static int sarr[10];  g9 = 9;  sarr[0] = 4;  v1 = g9;  if (v1 != 9)    link_error ();  foo (sarr);  g9 = foo99 (g9);  return v1 + sarr[0];}int test99999 (void){  int v1;  g9 = 9;  garr9[0] = 4;  v1 = g9;  if (v1 != 9)    link_error ();  return v1 + garr9[0];}/* There should be not link_error calls, if there is any the   optimization has failed *//* { dg-final { scan-tree-dump-times "link_error" 0 "optimized"} } *//* { dg-final { cleanup-tree-dump "optimized" } } */

⌨️ 快捷键说明

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