clam icon indicating copy to clipboard operation
clam copied to clipboard

Clam Error on LLVM IR translation to CrabIR

Open LinerSu opened this issue 9 months ago • 0 comments

  • Problem:
CRAB ERROR: Region::ref_store: type of value 6 (int32) is not compatible with region @V_39 (region(ref))

In LLVM IR, there is a global object with initialization:

%union.anon = type { i64 }
%struct.expdesc = type { i32, %union.anon, i32, i32 }
...
@luaK_prefix.ef = internal constant %struct.expdesc { i32 6, %union.anon zeroinitializer, i32 -1, i32 -1 }, align 8, !dbg !3989

In crab IR, %struct.expdesc has the following regions associated:

crab_intrinsic(regions_from_memory_object,@V_40:region(ref),@V_41:region(int),@V_42:region(unknown),@V_43:region(unknown),@V_44:region(int),@V_45:region(int),@V_46:region(ref),@V_47:region(int),@V_48:region(int),@V_49:region(int))
clam lua.pp.o.bc --simplifycfg-sink-common=false --clam-lower-unsigned-icmp --crab-dom=int --crab-widening-delay=2 --crab-widening-jump-set=0 --crab-narrowing-iterations=1 --crab-relational-threshold=10000 --crab-track=mem --crab-heap-analysis=cs-sea-dsa --sea-dsa-type-aware=true --sea-dsa-devirt --crab-singleton-aliases --crab-inter --crab-inter-max-summaries=9999999 --crab-inter-recursive=true --crab-inter-exact-summary-reuse=false --crab-inter-entry-main=true --crab-live --crab-print-cfg=false --crab-enable-warnings=false --crab-print-invariants=none --crab-store-invariants=false --crab-dot-cfg=false --use-crab-name-values=false --crab-enable-bignums=false

LinerSu avatar May 01 '24 19:05 LinerSu