#include "perms.h"

                                                                //      1  %begin
#line 1 "38.imp"
int main(int argc, char **argv) {
  __label__ _imp_endofblock;
  _imp_initialise(argc, argv);
                                                                //      2    %integer q,w,e,r,t,y { bump up indexes for easier debugging }
_imp_current_line = 2; _imp_current_file = "38.imp";
#line 2 "38.imp"
int Q;
#line 2 "38.imp"
int W;
#line 2 "38.imp"
int E;
#line 2 "38.imp"
int R;
#line 2 "38.imp"
int T;
#line 2 "38.imp"
int Y;
                                                                //      3    %recordformat testfm(%integer one, two)
_imp_current_line = 3; _imp_current_file = "38.imp";
#line 3 "38.imp"
typedef struct TESTFM TESTFM;
struct TESTFM {
  int ONE;
  int TWO;
};
                                                                //      4    %integer u,i,o,p
_imp_current_line = 4; _imp_current_file = "38.imp";
#line 4 "38.imp"
int U;
#line 4 "38.imp"
int I;
#line 4 "38.imp"
int O;
#line 4 "38.imp"
int P;
                                                                //      5    %record (testfm) %array test(0:10)
_imp_current_line = 5; _imp_current_file = "38.imp";
#line 5 "38.imp"
 TESTFM TEST[11];
                                                                //      6    %integer a,s,d,f
_imp_current_line = 6; _imp_current_file = "38.imp";
#line 6 "38.imp"
int A;
#line 6 "38.imp"
int S;
#line 6 "38.imp"
int D;
#line 6 "38.imp"
int F;
                                                                //      7  
                                                                //      8    ! BUG TODO should generate struct testfm *pointer()
                                                                //      9    ! but currently generates struct testfm pointer
                                                                //     10    %record (testfm) %map pointer
_imp_current_line = 10; _imp_current_file = "38.imp";
#line 10 "38.imp"
 TESTFM /*map*/*POINTER( void )
#line 10 "38.imp"
{
  __label__ _imp_endofblock;
                                                                //     11      %result == test(q)
_imp_current_line = 11; _imp_current_file = "38.imp";
#line 11 "38.imp"
return &TEST[Q];
                                                                //     12    %end
_imp_current_line = 12; _imp_current_file = "38.imp";
#line 12 "38.imp"
_imp_endofblock: ;
} // End of block POINTER at level 2
                                                                //     13    %record (testfm) normal
_imp_current_line = 13; _imp_current_file = "38.imp";
#line 13 "38.imp"
 TESTFM NORMAL;
                                                                //     14    q = 5
_imp_current_line = 14; _imp_current_file = "38.imp";
#line 14 "38.imp"
Q = 5;
                                                                //     15    normal_two = p
_imp_current_line = 15; _imp_current_file = "38.imp";
#line 15 "38.imp"
NORMAL.TWO = P;
                                                                //     16    pointer_two = p
_imp_current_line = 16; _imp_current_file = "38.imp";
#line 16 "38.imp"
POINTER()->TWO = P;
                                                                //     17  
                                                                //     18  %endofprogram
_imp_current_line = 18; _imp_current_file = "38.imp";
#line 18 "38.imp"
return 0;
_imp_endofblock: ;
} // End of block _imp_main at level 1
#line 18 "38.imp"
// End of file
// COMPILE WITH: gcc12 -DVALGRIND_AVAILABLE -UPARM_OPT -DPARM_UNASS -DPARM_CHECK -O -g -ftrivial-auto-var-init=pattern -fmerge-constants -fno-strict-aliasing -Wall -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unused-label -Wno-unused-function -Wno-maybe-uninitialized -Wno-uninitialized -frecord-gcc-switches -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize-undefined-trap-on-error -fsanitize=float-cast-overflow -fno-sanitize-recover=all -fstack-protector -Wno-frame-address -fno-omit-frame-pointer -Wno-return-type -Wno-comment -ftrapv -ggdb3 -gdwarf-4 -I. -I.. -c -o 38.o 38.c -lm
