#include <perms.h>

//          Edinburgh IMP77 Compiler - Version 8.4
//
//     1  %begin

int main(int argc, char **argv) { /*%begin*/
  _imp_initialise(argc, argv);

  //     2
  //     3    %recordformat F1(%integer I, J, K, L)

  struct F1 {
    union {
      struct {
        int I;
        int J;
        int K;
        int L;
      };
    };
  };

  //     4    %recordformat F2(%integer P, %record (F1) %array A(0:8))

  struct F2 {
    union {
      struct {
        int P;
        struct F1 A[9];
      };
    };
  };

  //     5    %record (F2) R

  struct F2 R;

  //     6    %integer I

  int I;

  //     7
  //     8    I=ADDR(R_A(0))

  I = _imp_ADDR(/*?*/ &R.A[0]);

  //     9
  //    10  %endofprogram

  _imp_stop(0);
  return 0;
end_0:;
}