procedure Test is
   type String_Access is access all String;
   type Argument_List is array (Positive range <>) of String_Access;
   type Argument_List2 is array (Positive range <>,
                                 Positive range <>) of String_Access;

   Gcc_Switches : Integer := 3;
begin
   Block1 : 
   declare
      Args : Argument_List (1 .. Gcc_Switches);
      Args2 : Argument_List2 (1 .. Gcc_Switches, 1 .. Gcc_Switches);
   begin
      for I in 1 .. Gcc_Switches loop
         Args (I) := new String' ("foo");
         Args2 (I, 1) := new String' ("foo");
      end loop;
   end Block1;
end Test;

