#include <perms.h>

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

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

  //     2    %integerfn sigval

  int SIGVAL(void) {
    //     3      %result = 8

    return 8;

    //     4    %end

  } /* end of SIGVAL */

  //     5
  //     6    %routine report(%integer a, b, c)

  void REPORT(int A, int B, int C) {
    //     7    %end

    return;
  } /* end of REPORT */

  // ?C unused
  // ?B unused
  // ?A unused
  //     8
  //     9    %constinteger internerr = 23, fail = 7
  //    10    %integer item = 43

  int ITEM;
  ITEM = 43;

  //    11
  //    12    report(internerr,0,6) %and %signal fail %if item <= 0

  if (ITEM > 0) goto L_0001;
  REPORT(23, 0, 6);
  _imp_signal(7, 0, 0, "");
L_0001:;

//    13
//    14    %signal 9, sigval

  _imp_signal(9, SIGVAL(), 0, "");

  //    15
  //    16  %endofprogram

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