On Thu, 23 Oct 2025 at 00:16, David Rowley <dgrowleyml@gmail.com> wrote:
> To figure out why this is happening requires caffeination and staring
> at llvmjit_deform.c for a long time. I suspect whatever is in there
> that's meant to do what fetch_att() does isn't doing it the same way.
This code here:
LLVMValueRef v_tmp_loaddata;
LLVMTypeRef vartype = LLVMIntTypeInContext(lc, att->attlen * 8);
LLVMTypeRef vartypep = LLVMPointerType(vartype, 0);
v_tmp_loaddata =
LLVMBuildPointerCast(b, v_attdatap, vartypep, "");
v_tmp_loaddata = l_load(b, vartype, v_tmp_loaddata, "attr_byval");
v_tmp_loaddata = LLVMBuildZExt(b, v_tmp_loaddata, TypeDatum, "");
LLVMBuildStore(b, v_tmp_loaddata, v_resultp);
I don't speak this fluently by any means, but I think I see a zero
extension here up to the Datum width. That's not what fetch_att()
does.
Will look more tomorrow.
David