mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-08-22 13:29:01 +00:00
transform: fix memory corruption issues
There was a bug in the wasm ABI lowering pass (found using AddressSanitizer on LLVM 15) that resulted in a rather subtle memory corruption. This commit fixes this issues.
This commit is contained in:
committed by
Ron Evans
parent
62df1d7490
commit
d435fc868b
@@ -88,8 +88,7 @@ func ExternalInt64AsPtr(mod llvm.Module, config *compileopts.Config) error {
|
|||||||
// Update all users to call the external function.
|
// Update all users to call the external function.
|
||||||
// The old $i64wrapper function could be removed, but it may as well
|
// The old $i64wrapper function could be removed, but it may as well
|
||||||
// be left in place.
|
// be left in place.
|
||||||
for use := fn.FirstUse(); !use.IsNil(); use = use.NextUse() {
|
for _, call := range getUses(fn) {
|
||||||
call := use.User()
|
|
||||||
entryBlockBuilder.SetInsertPointBefore(call.InstructionParent().Parent().EntryBasicBlock().FirstInstruction())
|
entryBlockBuilder.SetInsertPointBefore(call.InstructionParent().Parent().EntryBasicBlock().FirstInstruction())
|
||||||
builder.SetInsertPointBefore(call)
|
builder.SetInsertPointBefore(call)
|
||||||
callParams := []llvm.Value{}
|
callParams := []llvm.Value{}
|
||||||
|
|||||||
Reference in New Issue
Block a user