Test: mg_15_1

Higher SubleqErrorOutputSubleqITR
int a=48,b=50;
void main()
{
   if( a+2 == b ) __out a;
   if( a+2 == a ) __out b;
}


0

   top:top top sqmain

.  _a:48 _b:50

_main:
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; bp 0
   bp; sp bp
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; t1 0
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; t2 0

   t1; t2; _a t1; c1 t1; t1 t2
   t1; t2 Z; Z t1; Z; _b t1 ?+3
   t1 t1 ?+9; t1 Z ?+3; Z Z ?+3; inc t1
   Z t1 l1
   _a (-1)
l1:

   t1; t2; _a t1; c1 t1; t1 t2
   t1; t2 Z; Z t1; Z; _a t1 ?+3
   t1 t1 ?+9; t1 Z ?+3; Z Z ?+3; inc t1
   Z t1 l2
   _b (-1)
l2:

   ?+8; sp ?+4; t2; 0 t2; inc sp
   ?+8; sp ?+4; t1; 0 t1; inc sp
   sp; bp sp
   ?+8; sp ?+4; bp; 0 bp; inc sp
   ?+8; sp ?+4; ?+7; 0 ?+3; Z Z 0

sqmain:
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; ?+2 0 _main; . ?; inc sp

   Z Z (-1)

. c1:2

. t1:0 t2:0

. inc:-1 Z:0 dec:1 ax:0 bp:0 sp:-sp

Root (mg_15_1.hsq:7)
   Declaration (mg_15_1.hsq:1)
      Keyword [int] (mg_15_1.hsq:1)
      Declarator [=] (mg_15_1.hsq:1)
         Id [a] (mg_15_1.hsq:1)
         Const [48] (mg_15_1.hsq:1)
      Declarator [=] (mg_15_1.hsq:1)
         Id [b] (mg_15_1.hsq:1)
         Const [50] (mg_15_1.hsq:1)
   Function:0 [main] (mg_15_1.hsq:2)
      Keyword [void] (mg_15_1.hsq:2)
      Param-type-list (mg_15_1.hsq:2)
      Block (mg_15_1.hsq:3)
         Keyword-statement [if] (mg_15_1.hsq:4)
            Equality [==] (mg_15_1.hsq:4)
               Additive [+] (mg_15_1.hsq:4)
                  Variable [a] (mg_15_1.hsq:4) =:1
                  Const [2] (mg_15_1.hsq:4)
               Variable [b] (mg_15_1.hsq:4) =:1
            OperatorIO [__out] (mg_15_1.hsq:4)
               Variable [a] (mg_15_1.hsq:4) =:1
         Keyword-statement [if] (mg_15_1.hsq:5)
            Equality [==] (mg_15_1.hsq:5)
               Additive [+] (mg_15_1.hsq:5)
                  Variable [a] (mg_15_1.hsq:5) =:1
                  Const [2] (mg_15_1.hsq:5)
               Variable [a] (mg_15_1.hsq:5) =:1
            OperatorIO [__out] (mg_15_1.hsq:5)
               Variable [b] (mg_15_1.hsq:5) =:1