#include <perms.h>
// Edinburgh IMP77 Compiler - Version 8.4
//
// 1 %begin
int main(int argc, char **argv) { /*%begin*/
_imp_initialise(argc, argv);
// 2 %routine test(%name param) ;! ia1 ia2
void TEST(_imp_name * PARAM) {
// 3 write(addr(param),0) ; newline ;! 2145833816 2145833816 are these the same because it's the address of the
_imp_WRITE(_imp_ADDR(PARAM), 0);
_imp_NEWLINE();
// 4 ! %name param rather than the array it points to?
// 5 write(sizeof(param),0); newline ;! 4 4
_imp_WRITE(_imp_SIZEOF(PARAM), 0);
_imp_NEWLINE();
// 6 write(typeof(param),0); newline ;! 1 1
_imp_WRITE(_imp_TYPEOF(PARAM), 0);
_imp_NEWLINE();
// 7 %end
return;
} /* end of TEST */
// 8
// 9 %integerarray ia1(3:5)
int IA1[3];
// 10 %integerarray ia2(2:4,3:6)
int IA2[3][4];
// 11
// 12 test(ia1)
TEST(IA1);
// 13 test(ia2)
TEST(IA2);
// 14
// 15 %endofprogram
_imp_stop(0);
return 0;
end_0:;
}