summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gnat.dg/mutable1.adb
blob: 274b52375e74c2fc39c1ddbaeaab6759e15758c3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
-- { dg-do run }

procedure mutable1 is
            
   type Object (Valid : Boolean := False) is record
      case Valid is
         when True  => Stamp : Natural;
         when False => null;
      end case;
   end record;
      
   function Dummy_Object (Should_Be_There : Boolean) Return Object is
   begin 
      if not Should_Be_There then
         raise Program_Error;
      end if;
      return Object'(Valid => False);
   end;

   procedure Check (Create_Dummy : Boolean) is
      B : Boolean;
   begin
      B := Create_Dummy and then Dummy_Object (Create_Dummy).Valid;
   end;

begin
   Check (Create_Dummy => False); 
   Check (Create_Dummy => True);
end;