#include <perms.h>
// Edinburgh IMP77 Compiler - Version 8.4
//
// 1
// 2 %BEGIN
int main(int argc, char **argv) { /*%begin*/
_imp_initialise(argc, argv);
// 3 !***********************************************************************
// 4 !* A TEST TO CHECK THE LINE NUMBER OF A FAILURE AT RUN TIME *
// 5 !***********************************************************************
// 6 %INTEGERARRAY A(0:4)
int A[5];
// 7 %INTEGER I
int I;
auto void FRED(int *J);
// 8 %routinespec fred(%integername j)
// 9 printstring("This gives diagnostics showing i = 10
_imp_PRINTSTRING(_imp_str_literal("This gives diagnostics showing i = 10\n"));
// 10+ ")
// 11 I=10
I = 10;
// 12 fred(i)
FRED(/*?*/ &I);
// 13 %stop
_imp_stop(0);
// 14 %routine fred(%integername j)
void FRED(int *J) {
// 15 %IF j<0 %THEN %START
if (*J >= 0) goto L_0001;
// 16 !
// 17 !
// 18 %STOP
_imp_stop(0);
// 19 %FINISH %ELSE A(j)=A(j)+1
L_0001:;
A[*J] = A[*J] + 1;
// 20 !
// 21 %end
return;
} /* end of FRED */
// 22 %ENDOFPROGRAM
_imp_stop(0);
return 0;
end_0:;
}