#include <perms.h>
// Edinburgh IMP77 Compiler - Version 8.4
//
// 1 %begin
int main(int argc, char **argv) { /*%begin*/
_imp_initialise(argc, argv);
// 2
// 3 %routine printarrayname(%integerarrayname A)
void PRINTARRAYNAME(int *A) {
// 4 %end
return;
} /* end of PRINTARRAYNAME */
// ?A unused
// 5
// 6 %integerarray RA(0:1)
int RA[2];
struct _imp_dv RA_dv = {RA, sizeof(int) /*, dims, <bounds> */};
// 7
// 8 printarrayname(RA)
PRINTARRAYNAME(RA);
// 9
// 10 %integerarrayname RAN
int *RAN;
struct _imp_dv RAN_dv = {0}; // assignment of an array to an arrayname must copy bounds info too...
// 11
// 12 RAN == RA
RAN = (int *)RA;
// 13
// 14 printarrayname(RAN)
PRINTARRAYNAME(RAN);
// 15
// 16 %endofprogram
_imp_stop(0);
return 0;
end_0:;
}