bug-1029883.c

来自「sdcc是为51等小型嵌入式cpu设计的c语言编译器支持数种不同类型的cpu」· C语言 代码 · 共 65 行

C
65
字号
/*  Make sure global common subexpression optimization does not    inappropriately cache values across function calls.    sign1: signed, unsigned    sign2: signed, unsigned    type: int */#include <testfwk.h>typedef struct{  {sign1} {type} field1;  {sign1} {type} *field2;  {sign1} {type} field3;} struct1;  voidspoil({sign1} {type} val){  UNUSED(val);}voidinc1({sign1} {type} *valptr){  (*valptr)++;}{sign2}gcse1({sign2} {type} target){  spoil(target);  inc1(&target);  return target;}voidinc2(struct1 *s){  (*s->field2)++;}{sign2}gcse2({sign2} {type} target){  struct1 s;    s.field2 = &s.field3;  *s.field2 = target;  spoil(s.field3);  inc2(&s);  return s.field3;}voidtestgcse(void){  ASSERT(gcse1(1)==2);  ASSERT(gcse2(1)==2);}

⌨️ 快捷键说明

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