prog entry @main;
proc @main() -> () [
block %loop [
// pretend this does stuff
goto(%loop, %ret);
];
block %ret [
return();
];
];
crashes from a hashtbl find. Is it just the case that there should never be a block edge to the entry block?
and
proc @main(l:bv64) -> () [
block %entry [
goto(%loop, %ret);
];
block %loop [
(var l:bv64) := call @next(l:bv64);
goto(%loop, %ret);
];
block %ret [
return();
];
];
proc @next(p:bv64) -> (next:bv64) [
block %body [
return(p);
];
];
mistranslates to
proc @main() -> () { }
[
block %entry [ goto (%ret,%loop); ];
block %loop [
(var l_1:bv64=next) := call @next(p=l:bv64);
goto (%ret,%loop);
];
block %ret [ return; ]
];
proc @next(p:bv64) -> (next:bv64) { }
[ block %body [ var next:bv64 := p:bv64; return; ] ];
prog entry @main;
notice that l does not get a phi node coming from l_1...
crashes from a hashtbl find. Is it just the case that there should never be a block edge to the entry block?
and
mistranslates to
notice that
ldoes not get a phi node coming froml_1...