#include <perms.h>

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

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

  //     2    %integerarray ia(0:9)

  int IA[10];
  _imp_create_constdv(, int, IA, 0, 9);

  //     3    %comment   %integerarray ia(0:9)
  //     4    %integerarray(1)%name ian

  int *IAN;
  struct _imp_dv IAN_dv = {0};  // assignment of an array to an arrayname must copy bounds info too...

  //     5    %comment   %integerarray(1)%name ian
  //     6    ian == ia   ;! type mismatch

  IAN = (int *)IA;
  IAN_dv = IA_dv;

  //     7    %comment   ian == ia   ;! type mismatch
  //     8    ian(2) = 3  ;! index is missing

  _imp_aref(int, IAN, 2) = 3;

  //     9    %comment   ian(2) = 3  ;! index is missing
  //    10  %endofprogram

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