#include <perms.h>

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

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

  //     2
  //     3    %begin

  { /*%begin*/

    //     4      %recordformat WRONG(%real R)

    struct WRONG {
      union {
        struct {
          float R;
        };
      };
    };

    //     5    %end

    goto end_1000;
  end_1000:;
  }

  // ?WRONG unused
  //     6
  //     7    %recordformatspec RIGHT
  //     8
  //     9    %recordformat other(%record (RIGHT) %name MISTAKE)

  struct OTHER {
    union {
      struct {
        struct WRONG *MISTAKE;
      };
    };
  };

  //    10
  //    11    %recordformat RIGHT(%integer I)

  struct RIGHT {
    union {
      struct {
        int I;
      };
    };
  };

  //    12
  //    13  %endofprogram

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