Open langston-barrett opened 3 years ago
The type alias in question is struct._cairo
, which is opaque:
%struct._cairo = type opaque
I'm guessing the problem is here: https://github.com/GaloisInc/crucible/blob/6916feae5130703441c5aca7e2a1e057a438eb9f/uc-crux-llvm/src/UCCrux/LLVM/FullType/Type.hs#L253. In the process of recording FullType
translations of type aliases, "inner" aliases are skipped. The solution is to iterate over the whole llvmAliasMap
in the TypeContext
and translate all type aliases, which makes sense to do as a follow-up to #708.
Apparently, there's a reference to a type alias that isn't defined in this LLVM module. I didn't think this was possible, so
uc-crux-llvm
currently panics when it sees this.conf.config
:libcairo-script-interpreter.a.bc.zip