📄 ast_constant_folding.c
字号:
/* Test ast_constant_folding() in SDCCast.c */#include <testfwk.h>volatile unsigned i;unsignedfoo_aa (void){ return i + 5 + i - i + 12;}unsignedfoo_asr (void){ return i - 5 + i + i + 12;}unsignedfoo_asl (void){ return 5 - i + i + 12;}unsignedfoo_ssr (void){ return i - 5 - i - i - 12;}unsignedfoo_ssl (void){ return 5 - i - i - 12;}unsignedfoo_sa (void){ return i + 5 - i - i - 12;}unsignedfoo_mul (void){ return 5 * i * i * 12;}unsignedfoo_div (void){ return 33971u / i / 5 / i / i / 12;}unsignedfoo_or (void){ return 5 | i | i | 12;}unsignedfoo_and (void){ return 5 & i & i & 12;}voidtest_ast_cf(void){ i = 30; ASSERT(foo_aa () == 47); ASSERT(foo_asr() == 97); ASSERT(foo_asl() == 17); ASSERT(foo_ssr() == -47); ASSERT(foo_ssl() == -67); ASSERT(foo_sa () == -37); ASSERT(foo_mul() == 54000); i = 3; ASSERT(foo_div() == 20); i = 3; ASSERT(foo_or () == 15); i = 7; ASSERT(foo_and() == 4);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -