代码拉取完成,页面将自动刷新
Test case in .mpl (from 20020510-1.c):
void
testl (unsigned long l, int ok)
{
if ((l>=1) && (l<=LONG_MAX))
{
if (!ok) abort ();
}
else
if (ok) abort ();
}
The valueRangePropagation phase deletes (l<=LONG_MAX).
Bug only shows up with this form of maple IR:
func &testl (var %l u64, var %ok i32) void {
funcid 5
LOC 2 47
LOC 2 48
if (cand i32 (
ge i32 u64 (dread u64 %l, constval u64 1),
le i32 u64 (dread u64 %l, constval u64 0x7fffffffffffffff))) {
LOC 2 50
if (eq i32 i32 (dread i32 %ok, constval i32 0)) {
call &abort ()
}
}
else {
LOC 2 53
if (ne i32 i32 (dread i32 %ok, constval i32 0)) {
call &abort ()
}
}
LOC 2 54
return ()
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
Fix is in master branch.
登录 后才可以发表评论