Closed jonpalmisc closed 1 year ago
@jonpalmisc Could you please share a binary that reproduces this?
Here's the binary. Navigate to 1000071ac
and set the type for _swift_bridgeObjectRelease
to void _swift_bridgeObjectRelease(void *)
. You should then be able to observe the bug.
You should also be able to observe this when changing the type of x0_15
(set in each switch case) to void *
.
Here's the binary. Navigate to
1000071ac
and set the type for_swift_bridgeObjectRelease
tovoid _swift_bridgeObjectRelease(void *)
. You should then be able to observe the bug.
thx, I will have a look!
I can reproduce this. This should be a relatively easy fix
As you can see, the integer literals in HLIL on the left are missing the '0x' prefix that they have in the disassembly on the right.
Originally, I suspected that integer literals might be limited to 16 characters by the call to
sprintf
when formatting them, but that's not the case and you can see inside of theif
statement in the screenshot that isn't the case.Furthermore, it seems like changing the type of the
ptr
argument fromvoid*
causes the token inside of the call toswift_bridgeObjectRelease
to render correctly, but not the other pictured tokens starting withd0
.