Test: mg_23_2

Higher SubleqErrorOutputSubleqITR
int a=48,b=49,k=1;
void main()
{
   (k?a:b) = 50;
   __out a;
   __out b;

   __out k?a:b;

   k=0;   
   (k?a:b) = 51;
   __out a;
   __out b;

   __out k?a:b;
}


212233

   top:top top sqmain

.  _a:48 _b:49 _k:1

_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

   Z _k l1
   t1; c2 Z; Z t1; Z
   Z Z l2
l1:
   t1; c3 Z; Z t1; Z
l2:
   ?+23; ?+21; ?+24; t1 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; c1 Z; Z 0; Z

   _a (-1)

   _b (-1)

   Z _k l3
   t1; _a Z; Z t1; Z
   Z Z l4
l3:
   t1; _b Z; Z t1; Z
l4:
   t1 (-1)

   _k; c4 Z; Z _k; Z

   Z _k l5
   t1; c2 Z; Z t1; Z
   Z Z l6
l5:
   t1; c3 Z; Z t1; Z
l6:
   ?+23; ?+21; ?+24; t1 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; c5 Z; Z 0; Z

   _a (-1)

   _b (-1)

   Z _k l7
   t1; _a Z; Z t1; Z
   Z Z l8
l7:
   t1; _b Z; Z t1; Z
l8:
   t1 (-1)

   ?+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)

. c4:0 c1:50 c5:51 c2:_a c3:_b

. t1:0

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

Root (mg_23_2.hsq:17)
   Declaration (mg_23_2.hsq:1)
      Keyword [int] (mg_23_2.hsq:1)
      Declarator [=] (mg_23_2.hsq:1)
         Id [a] (mg_23_2.hsq:1)
         Const [48] (mg_23_2.hsq:1)
      Declarator [=] (mg_23_2.hsq:1)
         Id [b] (mg_23_2.hsq:1)
         Const [49] (mg_23_2.hsq:1)
      Declarator [=] (mg_23_2.hsq:1)
         Id [k] (mg_23_2.hsq:1)
         Const [1] (mg_23_2.hsq:1)
   Function:0 [main] (mg_23_2.hsq:2)
      Keyword [void] (mg_23_2.hsq:2)
      Param-type-list (mg_23_2.hsq:2)
      Block (mg_23_2.hsq:3)
         Assignment [=] (mg_23_2.hsq:4)
            Conditional [?] (mg_23_2.hsq:4)
               Variable [k] (mg_23_2.hsq:4) =:1
               Variable [a] (mg_23_2.hsq:4) =:1
               Variable [b] (mg_23_2.hsq:4) =:1
            Const [50] (mg_23_2.hsq:4)
         OperatorIO [__out] (mg_23_2.hsq:5)
            Variable [a] (mg_23_2.hsq:5) =:1
         OperatorIO [__out] (mg_23_2.hsq:6)
            Variable [b] (mg_23_2.hsq:6) =:1
         OperatorIO [__out] (mg_23_2.hsq:8)
            Conditional [?] (mg_23_2.hsq:8)
               Variable [k] (mg_23_2.hsq:8) =:1
               Variable [a] (mg_23_2.hsq:8) =:1
               Variable [b] (mg_23_2.hsq:8) =:1
         Assignment [=] (mg_23_2.hsq:10)
            Variable [k] (mg_23_2.hsq:10) =:1
            Const [0] (mg_23_2.hsq:10)
         Assignment [=] (mg_23_2.hsq:11)
            Conditional [?] (mg_23_2.hsq:11)
               Variable [k] (mg_23_2.hsq:11) =:1
               Variable [a] (mg_23_2.hsq:11) =:1
               Variable [b] (mg_23_2.hsq:11) =:1
            Const [51] (mg_23_2.hsq:11)
         OperatorIO [__out] (mg_23_2.hsq:12)
            Variable [a] (mg_23_2.hsq:12) =:1
         OperatorIO [__out] (mg_23_2.hsq:13)
            Variable [b] (mg_23_2.hsq:13) =:1
         OperatorIO [__out] (mg_23_2.hsq:15)
            Conditional [?] (mg_23_2.hsq:15)
               Variable [k] (mg_23_2.hsq:15) =:1
               Variable [a] (mg_23_2.hsq:15) =:1
               Variable [b] (mg_23_2.hsq:15) =:1