#include <perms.h>
int _imp_mainep(int _imp_argc, char **_imp_argv) {
  int I;
  int J;
  static _imp_string Failed = _imp_str_literal("TEST OK");
  typedef struct F {
    int I;
    int J;
  } F;
  auto void Interchange(F A, int I, int J);
  F A[4 /*0:3*/];
  F B[4 /*1:4*/];
  for (I = 0; I <= 3; I++) {
    A[I].I = I;
    B[I + 1].I = I + 1;
  }
  Interchange(A, 1, 3);
  if (A[1].I != 3 || A[3].I != 1) Failed = _imp_str_literal("***BUG FOUND");
  Interchange(B, 1, 3);
  if (B[1].I != 3 || B[3].I != 1) Failed = _imp_str_literal("***BUG FOUND");
  Printstring(Failed);
  void Interchange(F R, int P, int Q) {
    F Temp;
    Temp = R;
    R = R;
    R = Temp;
  }
  exit(0);
  return (1);
}
