#include <perms.h>
// Edinburgh IMP77 Compiler - Version 8.4
//
// 1 %externalroutinespec pass
extern void PASS(void);
// 2 %externalroutinespec fail
extern void FAIL(void);
// 3 %constinteger three = 3, four = 4
// 4 %routine checkstar(%string(*)%array%name s)
static void CHECKSTAR(_imp_string *S) {
// 5 %if s(1) = "one" %and s(2) = "two" %and s(3) = "three" %c
/* clang-format off */
if (_imp_strcmp((_imp_string *)/*?*/&S[/*BUG*/1], (_imp_string *)/*?*/_imp_str_literal_ptr("one")) != 0) goto L_0001;
/* clang-format on */
/* clang-format off */
if (_imp_strcmp((_imp_string *)/*?*/&S[/*BUG*/2], (_imp_string *)/*?*/_imp_str_literal_ptr("two")) != 0) goto L_0001;
/* clang-format on */
/* clang-format off */
if (_imp_strcmp((_imp_string *)/*?*/&S[/*BUG*/3], (_imp_string *)/*?*/_imp_str_literal_ptr("three")) != 0) goto L_0001;
/* clang-format on */
/* clang-format off */
if (_imp_strcmp((_imp_string *)/*?*/&S[/*BUG*/4], (_imp_string *)/*?*/_imp_str_literal_ptr("four")) != 0) goto L_0001;
/* clang-format on */
PASS();
goto L_0002;
L_0001:;
FAIL();
L_0002:;
// 6+ %and s(four) = "four" %then pass %else fail
// 7 s(three) = "333"
S[/*BUG*/ 3] = _imp_str_literal("333");
// 8 %end
return;
} /* end of CHECKSTAR */
// 9
// 10 %endoffile