#include <perms.h>

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

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

  //     2    %recordformat fm(%integer a, b, c)

  struct FM {
    union {
      struct {
        int A;
        int B;
        int C;
      };
    };
  };

  //     3    %record (fm) %map recmap

  struct FM *RECMAP(void)
  {

    //     4      %ownrecord (fm) local

    static struct FM LOCAL;

    //     5      %result == local

    return /*?*/ &LOCAL;

    //     6    %end

  } /* end of RECMAP */

  //     7    recmap_b = 42

  RECMAP()->B = 42;

  //     8  %endofprogram

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