From ef3b3c0d6a666b4082e2ab7e31761010417e5ddb Mon Sep 17 00:00:00 2001 From: Ayke van Laethem Date: Thu, 14 Apr 2022 22:30:41 +0200 Subject: [PATCH] transform: fix poison value in heap-to-stack transform In https://github.com/tinygo-org/tinygo/issues/2777, a poison value ended up in `runtime.alloc`. This shouldn't happen, especially not for well written code. So I'm not sure why it happens. But here is a fix anyway. --- transform/allocs.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/transform/allocs.go b/transform/allocs.go index b1f5ea35..35fa1b0b 100644 --- a/transform/allocs.go +++ b/transform/allocs.go @@ -41,7 +41,7 @@ func OptimizeAllocs(mod llvm.Module, printAllocs *regexp.Regexp, logger func(tok for _, heapalloc := range getUses(allocator) { logAllocs := printAllocs != nil && printAllocs.MatchString(heapalloc.InstructionParent().Parent().Name()) - if heapalloc.Operand(0).IsAConstant().IsNil() { + if heapalloc.Operand(0).IsAConstantInt().IsNil() { // Do not allocate variable length arrays on the stack. if logAllocs { logAlloc(logger, heapalloc, "size is not constant")