#include <perms.h>

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

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

  //     2
  //     3  %integer x

  int X;

  //     4  %integername xp

  int *XP;

  //     5  %integernamearray inra(0:9)

  int *INRA[10];

  //     6
  //     7  %routine test12(%integernamearrayname xinan1)

  void TEST12(int **XINAN1) {
    //     8    xinan1(4) == xp

    [/*BUG*/ 0] = (int *)XP;

    //     9    xp == xinan1(4)

    XP = (int *)[/*BUG*/ 0];

    //    10    xinan1(4) == x

    [/*BUG*/ 0] = (int *)/*?*/ &X;

    //    11    xinan1(4) = x

    *[/*BUG*/ 0] = X;

    //    12    x = xinan1(4)

    X = *[/*BUG*/ 0];

    //    13  %end

    return;
  } /* end of TEST12 */

  //    14
  //    15  inra(4) == x

  INRA[4] = (int *)/*?*/ &X;

  //    16  test12(inra)

  TEST12(INRA);

  //    17
  //    18  %endofprogram

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