MODULE CStructLayoutProg; FROM SYSTEM IMPORT ADDRESS, ADR; FROM CStructLayout IMPORT Mixed, Rect, FRect, RGBA; PROCEDURE mixed_size () : INTEGER; EXTERNAL "m2_c_layout_mixed_size"; PROCEDURE rect_size () : INTEGER; EXTERNAL "m2_c_layout_rect_size"; PROCEDURE frect_size () : INTEGER; EXTERNAL "m2_c_layout_frect_size"; PROCEDURE rgba_size () : INTEGER; EXTERNAL "m2_c_layout_rgba_size"; PROCEDURE off (base, field : ADDRESS; which : INTEGER) : INTEGER; EXTERNAL "m2_c_layout_offset"; VAR ExitCode : INTEGER; m : Mixed; BEGIN IF (SIZE(Mixed) = mixed_size()) AND (SIZE(Rect) = rect_size()) AND (SIZE(FRect) = frect_size()) AND (SIZE(RGBA) = rgba_size()) AND (off(ADR(m), ADR(m.b), 0) = 1) AND (off(ADR(m), ADR(m.f), 1) = 1) AND (off(ADR(m), ADR(m.d), 2) = 1) AND (off(ADR(m), ADR(m.i), 3) = 1) AND (off(ADR(m), ADR(m.p), 4) = 1) THEN ExitCode := 42 ELSE ExitCode := 1 END END CStructLayoutProg.