1-- { dg-do run } 2-- { dg-options "-O -ftree-vrp -fno-inline" } 3 4procedure Opt88 is 5 6 Val : Integer := 1; 7 8 procedure Dummy (B : out Boolean) is 9 begin 10 B := True; 11 end; 12 13 function Test return Boolean is 14 begin 15 return False; 16 end; 17 18 procedure Do_It (OK : out Boolean) is 19 20 Blue : Boolean := False; 21 Red : Boolean := False; 22 23 begin 24 OK := True; 25 Blue := True; 26 Dummy (Red); 27 28 if Red then 29 Red := False; 30 31 if Test then 32 Dummy (Red); 33 end if; 34 end if; 35 36 if Blue and not Red then 37 Val := 0; 38 end if; 39 40 if Red then 41 OK := False; 42 end if; 43 end; 44 45 OK : Boolean; 46 47begin 48 Do_It (OK); 49 if not OK then 50 raise Program_Error; 51 end if; 52end; 53