Patched #1242#1293
Conversation
| @@ -0,0 +1,13 @@ | |||
| ; EXPECT: ERROR: Source is more defined than target | |||
There was a problem hiding this comment.
the name of the test is not very good. this is testing that the load is not UB.
You need another test that shows that the return value can be replaced with poison. Also, run the tests; I believe some tests will fail with your change.
|
Hello, I made the changes, ran the tests, and got 82% failure rate... so be back in a bit. |
|
@nunoplopes Hi, I got the tests working and did find that a decent amount did fail. But it took me a while to figure out that Im supposed to run On the note of tests, here are the changes: FIXED (1):
NEW FAILURES (5):
|
probably 😅 |
|
Hi @nunoplopes I think I've fixed all of the tests which had issues, can you maybe look over it and let me know if it's good or not? I can squash the merges if they look good |
|
|
||
| Alive2's `opt` and `clang` translation validation requires a build of LLVM with | ||
| RTTI and exceptions turned on. The latest version of Alive2 is always intended | ||
| RTTI and exceptions turned on. The latest version Of Alive2 is always intended |
| @@ -1,14 +1,17 @@ | |||
| define void @src(ptr %0, i1 %1) { | |||
| %3 = alloca i64, align 8 | |||
| call void @llvm.lifetime.start(i64 8, ptr %3) | |||
| @glb = global ptr null | ||
| declare ptr @f(ptr %p) | ||
|
|
||
| declare void @llvm.lifetime.start(i64, ptr captures(none)) |
| return { Byte(*this, ::raw_load(block.val, offset)), DataType(block.type) }; | ||
| expr alive = isBlockAlive(expr::mkUInt(bid, Pointer::bitsShortBid()), local); | ||
| return { Byte(*this, mkIf_fold(alive, ::raw_load(block.val, offset), | ||
| Byte::mkPoisonByte(*this)())), |
| expr ret = p.isBlockAlive(); | ||
| expr ret = expr::mkIf(p.isStackAllocated(), | ||
| (iswrite || is_asm) ? p.isBlockAlive() : true, | ||
| p.isBlockAlive()); |
There was a problem hiding this comment.
simplify to (p.isStackAllocated() && !write) || p.isBlockAlive()
Hello, Someone I know sent me this and said I should try patching it, took a quick jab at it and came up with this. Let me know if I missed anything, or am not properly following the coding standards.
Thank you,
Yohello1