So I enabled debug mode for the slicer, and it
seems that the slicer kills the assignment to
ebx at
call foo(). I can see that
ebx is (implicitly)
added to the call-written list here:
dataflowAPI/src/ABI.C:
185: // PLT entries
use ebx
186: callRead_[machRegIndex_x86()[x86::ebx]]
= true;
187:
188: // TODO: Fix
this for platform-specific calling conventions
189:
189: // Assume calls
write flags
191: callWritten_ =
callRead_;
Moving line 186 after the assignment to callWritten (line
191) seems to solve the issue for me.
Thoughts?