From 4fdffdf8b26db281209679ec73040a8c6d6cf915 Mon Sep 17 00:00:00 2001 From: Ayke van Laethem Date: Sat, 17 Nov 2018 14:09:18 +0100 Subject: [PATCH] interp: support non-const ptrtoint instruction --- interp/frame.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/interp/frame.go b/interp/frame.go index a8d85095..b3ba843b 100644 --- a/interp/frame.go +++ b/interp/frame.go @@ -160,6 +160,9 @@ func (fr *frame) evalBasicBlock(bb, incoming llvm.BasicBlock, indent string) (re case !inst.IsAFPExtInst().IsNil(): value := fr.getLocal(inst.Operand(0)) fr.locals[inst] = &LocalValue{fr.Eval, fr.builder.CreateFPExt(value.(*LocalValue).Value(), inst.Type(), "")} + case !inst.IsAPtrToIntInst().IsNil(): + value := fr.getLocal(inst.Operand(0)) + fr.locals[inst] = &LocalValue{fr.Eval, fr.builder.CreatePtrToInt(value.Value(), inst.Type(), "")} case !inst.IsABitCastInst().IsNil() && inst.Type().TypeKind() == llvm.PointerTypeKind: operand := inst.Operand(0) if !operand.IsACallInst().IsNil() {