#include "perms.h"

                                                                //      1  %begin
#line 1 "61.imp"
int main(int argc, char **argv) {
  __label__ _imp_endofblock;
  _imp_initialise(argc, argv);
                                                                //      2    ! see if we can remove redundant *& in assignment of 'that == buff(0)'
                                                                //      3    %recordformat bfm(%integer i, j)
_imp_current_line = 3; _imp_current_file = "61.imp";
#line 3 "61.imp"
typedef struct BFM BFM;
struct BFM {
  int I;
  int J;
};
                                                                //      4  
                                                                //      5    ! BUG: currently the '*' is missing from the map declaration
                                                                //      6    %record(bfm)%map   buff(%integer addr)
_imp_current_line = 6; _imp_current_file = "61.imp";
#line 6 "61.imp"
 BFM /*map*/*BUFF( int ADDR )
#line 6 "61.imp"
{
  __label__ _imp_endofblock;
                                                                //      7    %record(bfm)  this
_imp_current_line = 7; _imp_current_file = "61.imp";
#line 7 "61.imp"
 BFM THIS;
                                                                //      8      %result == this
_imp_current_line = 8; _imp_current_file = "61.imp";
#line 8 "61.imp"
return &THIS;
                                                                //      9    %end;          !  of 'buff'
_imp_current_line = 9; _imp_current_file = "61.imp";
#line 9 "61.imp"
_imp_endofblock: ;
} // End of block BUFF at level 2
                                                                //     10  
                                                                //     11    %record (bfm) %name  that
_imp_current_line = 11; _imp_current_file = "61.imp";
#line 11 "61.imp"
 BFM /*name*/*THAT;
                                                                //     12  
                                                                //     13    that == buff(0)
_imp_current_line = 13; _imp_current_file = "61.imp";
#line 13 "61.imp"
THAT = BUFF(0);
                                                                //     14  
                                                                //     15  %endofprogram
_imp_current_line = 15; _imp_current_file = "61.imp";
#line 15 "61.imp"
return 0;
_imp_endofblock: ;
} // End of block _imp_main at level 1
#line 15 "61.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 61.o 61.c -lm
