#include <perms.h>

                                                                //      1  ! ./i2c --icode --no-line test/arrays.imp
                                                                //      2  ! gcc12 -O -ftrivial-auto-var-init=pattern -c -g -o test/arrays test/arrays.c
                                                                //      3  
                                                                //      4  %begin
#line 4 "regression-bugs-tmp/arrays.imp"
int main(int argc, char **argv) {
  __label__ _imp_endofblock;
  _imp_initialise(argc, argv);
                                                                //      5    %INTEGERARRAY COMP, OPP(-1:26)
_imp_current_line = 5; _imp_current_file = "regression-bugs-tmp/arrays.imp";
#line 5 "regression-bugs-tmp/arrays.imp"
int COMP[28];
#line 5 "regression-bugs-tmp/arrays.imp"
int OPP[28];
                                                                //      6    %predicate VALID MOVE(%integer M, P, %INTEGERARRAYNAME COMP, OPP)
_imp_current_line = 6; _imp_current_file = "regression-bugs-tmp/arrays.imp";
#line 6 "regression-bugs-tmp/arrays.imp"
int /*Boolean*/ VALIDMOVE( int M, int P, int /*arrayname*/*COMP, int /*arrayname*/*OPP )
#line 6 "regression-bugs-tmp/arrays.imp"
{
  __label__ _imp_endofblock;
                                                                //      7      %if COMP(10) = 123 %start
_imp_current_line = 7; _imp_current_file = "regression-bugs-tmp/arrays.imp";
#line 7 "regression-bugs-tmp/arrays.imp"
if (((COMP[10]) != (123))) goto L_0002;
                                                                //      8        %true
_imp_current_line = 8; _imp_current_file = "regression-bugs-tmp/arrays.imp";
#line 8 "regression-bugs-tmp/arrays.imp"
return 1;
                                                                //      9      %finish
_imp_current_line = 9; _imp_current_file = "regression-bugs-tmp/arrays.imp";
#line 9 "regression-bugs-tmp/arrays.imp"
L_0002:;
                                                                //     10      %false
_imp_current_line = 10; _imp_current_file = "regression-bugs-tmp/arrays.imp";
#line 10 "regression-bugs-tmp/arrays.imp"
return 0;
                                                                //     11    %end
_imp_current_line = 11; _imp_current_file = "regression-bugs-tmp/arrays.imp";
#line 11 "regression-bugs-tmp/arrays.imp"
_imp_endofblock: ;
} // End of block VALIDMOVE at level 2
                                                                //     12    %if VALID MOVE(0, 1, COMP, OPP) %start
_imp_current_line = 12; _imp_current_file = "regression-bugs-tmp/arrays.imp";
#line 12 "regression-bugs-tmp/arrays.imp"
if (VALIDMOVE(0, 1, &COMP[-((-1))], &OPP[-((-1))])) goto L_0003;
                                                                //     13    %finish
_imp_current_line = 13; _imp_current_file = "regression-bugs-tmp/arrays.imp";
#line 13 "regression-bugs-tmp/arrays.imp"
L_0003:;
                                                                //     14  
                                                                //     15    ! test/arrays.c: In function 'main':
                                                                //     16    ! test/arrays.c:213:21: warning: passing argument 3 of 'VALIDMOVE' from incompatible pointer type [-Wincompatible-pointer-types]
                                                                //     17    !   213 | if (VALIDMOVE(0, 1, &COMP, &OPP)) goto L_0003;
                                                                //     18    !       |                     ^~~~~
                                                                //     19    !       |                     |
                                                                //     20    !       |                     int (*)[28]
                                                                //     21    ! test/arrays.c:164:48: note: expected 'int **' but argument is of type 'int (*)[28]'
                                                                //     22    !   164 | int /*Boolean*/ VALIDMOVE( int M, int P, int **COMP, int **OPP )
                                                                //     23    !       |                                          ~~~~~~^~~~
                                                                //     24    ! test/arrays.c:213:28: warning: passing argument 4 of 'VALIDMOVE' from incompatible pointer type [-Wincompatible-pointer-types]
                                                                //     25    !   213 | if (VALIDMOVE(0, 1, &COMP, &OPP)) goto L_0003;
                                                                //     26    !       |                            ^~~~
                                                                //     27    !       |                            |
                                                                //     28    !       |                            int (*)[28]
                                                                //     29    ! test/arrays.c:164:60: note: expected 'int **' but argument is of type 'int (*)[28]'
                                                                //     30    !   164 | int /*Boolean*/ VALIDMOVE( int M, int P, int **COMP, int **OPP )
                                                                //     31    !       |                                                      ~~~~~~^~~
                                                                //     32  
                                                                //     33  %endofprogram
_imp_current_line = 33; _imp_current_file = "regression-bugs-tmp/arrays.imp";
#line 33 "regression-bugs-tmp/arrays.imp"
return 0;
_imp_endofblock: ;
} // End of block _imp_main at level 1
#line 33 "regression-bugs-tmp/arrays.imp"
// End of file
