#include <perms.h>
// Edinburgh IMP77 Compiler - Version 8.4
//
// 1 %begin
int main(int argc, char **argv) { /*%begin*/
_imp_initialise(argc, argv);
// 2 %integer i
int I;
// 3 %recordformat rf(%record (rf) %name next, %integer i)
struct RF {
union {
struct {
struct RF *NEXT;
int I;
};
};
};
// 4
// 5 %record (rf) %name recn
struct RF *RECN;
// 6 %record (rf) %name %array %name rnan
struct RF **RNAN;
struct _imp_dv RNAN_dv = {0}; // assignment of an array to an arrayname must copy bounds info too...
// 7
// 8 rnan(i)_next == recn
RNAN[/*BUG*/ I]->NEXT = (struct RF *)RECN;
// 9
// 10 %endofprogram
_imp_stop(0);
return 0;
end_0:;
}