📄 bug-1029883.c
字号:
/* 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -