#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 %integernamearray inra(0:9)
int *INRA[10];
struct _imp_dv INRA_dv = {INRA, sizeof(int *) /*, dims, <bounds> */};
// 6
// 7 %routine test12(%integernamearrayname xinan1)
void TEST12(int **XINAN1) {
// 8 xinan1(4) == xp
XINAN1[/*BUG*/ 4] = (int *)XP;
// 9 xp == xinan1(4)
XP = (int *)XINAN1[/*BUG*/ 4];
// 10 xinan1(4) == x
XINAN1[/*BUG*/ 4] = (int *)/*?*/ &X;
// 11 xinan1(4) = x
*XINAN1[/*BUG*/ 4] = X;
// 12 x = xinan1(4)
X = *XINAN1[/*BUG*/ 4];
// 13 %end
return;
} /* end of TEST12 */
// 14
// 15 inra(4) == x
INRA[4] = (int *)/*?*/ &X;
// 16 test12(inra)
TEST12(INRA);
// 17
// 18 %endofprogram
_imp_stop(0);
return 0;
end_0:;
}