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 + -
显示快捷键?