         Edinburgh IMP77 Compiler - Version 8.4

    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
    5    %INTEGERARRAY COMP, OPP(-1:26)
    6    %predicate VALID MOVE(%integer M, P, %INTEGERARRAYNAME COMP, OPP)
    7      %if COMP(10) = 123 %start
    8        %true
    9      %finish
   10      %false
   11    %end
?OPP unused
?P unused
?M unused
   12    %if VALID MOVE(0, 1, COMP, OPP) %start
   13    %finish
   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

   11 Statements compiled
