#include <perms.h>
// Edinburgh IMP77 Compiler - Version 8.4
//
// 1 %begin
int main(int argc, char **argv) { /*%begin*/
_imp_initialise(argc, argv);
// 2
// 3 %integer x
int X;
// 4 %integername xp
int *XP;
// 5 %integerarray ra(0:9)
int RA[10];
// 6
// 7 %routine test1(%integer xi1)
void TEST1(int XI1) {
// 8 x = xi1
X = XI1;
// 9 xi1 = x
XI1 = X;
// 10 %end
return;
} /* end of TEST1 */
// 11
// 12 %routine test2(%integername xin1)
void TEST2(int *XIN1) {
// 13 xin1 == x
XIN1 = (int *)/*?*/ &X;
// 14 xin1 == xp
XIN1 = (int *)XP;
// 15 xin1 = x
*XIN1 = X;
// 16 xin1 = xp
*XIN1 = *XP;
// 17 %end
return;
} /* end of TEST2 */
// 18
// 19 %routine test4(%integer xi2,xi3)
void TEST4(int XI2, int XI3) {
// 20 xi2 = xi3
XI2 = XI3;
// 21 xi3 = xi2
XI3 = XI2;
// 22 %end
return;
} /* end of TEST4 */
// 23
// 24 %routine test7(%integerarrayname xran1)
void TEST7(int *XRAN1) {
// 25 xran1 == ra
XRAN1 = (int *)RA;
// 26 xran1(4) = x
[/*BUG*/ 0] = X;
// 27 x = xran1(4)
X = [/*BUG*/ 0];
// 28 %end
return;
} /* end of TEST7 */
// 29
// 30 %routine test12(%integernamearrayname xinan1)
void TEST12(int **XINAN1) {
// 31 xinan1(4) == xp
[/*BUG*/ 0] = (int *)XP;
// 32 xp == xinan1(4)
XP = (int *)[/*BUG*/ 0];
// 33 xinan1(4) = x
*[/*BUG*/ 0] = X;
// 34 x = xinan1(4)
X = *[/*BUG*/ 0];
// 35 %end
return;
} /* end of TEST12 */
// 36
// 37 %endofprogram
_imp_stop(0);
return 0;
end_0:;
}