[Info-vax] x86 cross tools error message
John Reagan
xyzzy1959 at gmail.com
Tue Feb 8 12:32:01 EST 2022
On Tuesday, February 8, 2022 at 11:23:22 AM UTC-5, Mark Berryman wrote:
> What does this error mean?
>
> Integrity check error: Illegal result type (INT8) for operand 2 of
> STORE tuple at 08EDC9D8
> STORE.UINT8 (core_globals+56, 08EDC9A8 : &ADDRESS=08EDC9D8,
> LOCATOR={*{60725:2-42}~A:00000001}, PREV_TUPLE=08EDC9A8, NEXT_TUPLE=
> 08EDCA30, MARK1, BASE_SYMBOL=core_globals, EFFECTS=08ED2468
> : NULL)
>
> If I am reading it correctly, the C statement in question is attempting
> to set a value, defined as _Bool, into a variable defined as unsigned char.
>
> Mark Berryman
You should be asking that question in the Support Portal for the cross-tools.
The cross-C compiler (actually all of them) runs the GEM Integrity Checker on the frontend generated IL. That checker is normally disabled in production Alpha and Itanium compilers.
The C frontend generated technically invalid CIL (a mix of signed and unsigned bytes). You can't tell from that single message but the CIL at 08EDC9A8 probably produced a signed value. You can use /DUMP=INITIAL if you want to see more of the sausage factory.
You can disable the checking on the cross-compiler with /SWITCH=NOCHECK
It is on my list to fix the C frontend to generate the required CVT tuple which satisfies the GEM CIL type rules. Of course, it generates no code.
John
More information about the Info-vax
mailing list