summaryrefslogblamecommitdiff
path: root/misc/pascal/tests/src/006-optconst.pas
blob: 511d807eb1785ae511bb535ace91f631d9cd8407 (plain) (tree)










































                                                      
{ A test of constant optimiztion }

program constopt;
var 
   i1, i2, i3 : integer;
   b1	      :  boolean
begin
   { integer operations:
   1. =, <>, <, <=, >, >=
   2. +, -, OR
   3. *, DIV, AND, SHL, SHR
   4. -, NOT
   }
     
   i1 := -2;                { -2 }
   i1 := 3 * 2;             {  6 }
   i1 := 3 * (-2);          { -6 }
   i1 := 3 div 2;           {  1 }
   i1 := 3 div (-2);        { -1 }
   i1 := 4 * 3 div (-2);    { -6 }
   i1 := 4 * (3 div (-2));  { -4 }
   i1 := (4 * 3) div (-2);  { -6 }

   i1 := 3 + 2;             {  5 }
   i1 := 3 - 2;             {  1 }
   i1 := 3 + (-2);          {  1 }
   i1 := 4 + 3 - 2;         {  5 }
   i1 := 4 + (3 - 2);       {  5 }
   i1 := (4 + 3) - 2;       {  5 }

   b1 := -2 = 3 + 2;                    { -2 =  5  0 }
   b1 := 3 * 2 <> 3 - 2;                {  6 <> 1 -1 }
   b1 := 3 * (-2) < 3 + (-2);           { -6 <  1 -1 }
   b1 := 3 div 2 <= 4 + 3 - 2;          {  1 <= 5 -1 }
   b1 := 3 div (-2) > 4 + (3 - 2);      { -1 >  5  0 }
   b1 := 4 * 3 div (-2) >= (4 + 3) - 2; { -6 >= 5  0 }

   { floating point operations }
   { to be provided }

   { string operations }
   { to be provided }
end.