#include <perms.h>

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

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

  //     2
  //     3    %routine FRED(%integername Param)

  void FRED(int *PARAM) {
    //     4  !    %integer I
    //     5  !    Param = 3;    ! *Param = 3;
    //     6  !    Param == I   ;! Although Imp77 allows this, it should be warned about!  It won't propogate out of the routine.
    //     7  !                  ! This should generate "Param = &I;"
    //     8    %end

    return;
  } /* end of FRED */

  // ?PARAM unused
  //     9
  //    10    %integer K = 0

  int K;
  K = 0;

  //    11
  //    12    FRED(K)

  FRED(/*?*/ &K);

  //    13    ! This should generate "Fred(&K);"
  //    14
  //    15  %endofprogram

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