#include <perms.h>
int _imp_mainep(int _imp_argc, char **_imp_argv) {
  _imp_enter();
  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[3 - 0 + 1];
  F B[4 - 1 + 1];
  for (I = 0; I != 3 + 1; I += 1) {
    A.I = I;
    B[I + 1].I = I + 1;
  }
  INTERCHANGE(A, 1, 3);
  if (A.I != 3 || A.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);
  auto void INTERCHANGE(F * R, int P, int Q) {
    _imp_enter();
    F TEMP;
    TEMP = R;
    *R(/*index missing*/) = R;
    *R(/*index missing*/) = TEMP;
    _imp_leave();
  }

  _imp_leave();
  exit(0);
  return (0);
}
