[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