#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 fm(%integer dummy)

  struct FM {
    union {
      struct {
        int DUMMY;
      };
    };
  };

  //     4
  //     5  %record(fm)%map rmap

  struct FM *RMAP(void)
  {

    //     6    %ownrecord(fm) rec

    static struct FM REC;

    //     7    rec_dummy = 1

    REC.DUMMY = 1;

    //     8    %result == rec

    return /*?*/ &REC;

    //     9  %end

  } /* end of RMAP */

  //    10
  //    11  %integer i

  int I;

  //    12
  //    13  %record(fm)%name recn

  struct FM *RECN;

  //    14
  //    15  recn == rmap

  RECN = (struct FM *)RMAP();

  //    16
  //    17  i = recn_dummy

  I = RECN->DUMMY;

  //    18
  //    19  %endofprogram

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