------- Comment #5 from sam at gcc dot gnu dot org  2007-12-04 18:55 -------
Ludovic, 

in RM 3.6:

(2)
       array_type_definition ::=
          unconstrained_array_definition | constrained_array_definition
(3)
       unconstrained_array_definition ::=
          array(index_subtype_definition {, index_subtype_definition}) of
component_definition
(4)
       index_subtype_definition ::= subtype_mark range <>
(5)
       constrained_array_definition ::=
          array (discrete_subtype_definition {, discrete_subtype_definition})
of component_definition
(6)
       discrete_subtype_definition ::= discrete_subtype_indication | range
(7)
       component_definition ::= [aliased] subtype_indication

As you said, Boolean'Base is unconstrained, so we are obviously in the
unconstrained_array_definition case as we do not have a
discrete_subtype_indication. Which means that "range <>" is mandatory.

Indeed, if you use

  type a3 is array (Boolean'Base range <>) of Integer;

then GNAT will be happy.

Do we agree that this is not a bug after all?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15799

Reply via email to