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

             Bug #: 50651
           Summary: GNAT rejects matching parameter in generic
                    instantiation as non-matching
    Classification: Unclassified
           Product: gcc
           Version: 4.5.3
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: ada
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: bate...@bat.fr.eu.org
                CC: bate...@bat.fr.eu.org, gcc-bugs@gcc.gnu.org,
                    ludo...@ludovic-brenta.org, s...@gcc.gnu.org,
                    spa...@nbi.dk


+++ This bug was initially created as a clone of Bug #22164 +++

--  ARM 15.5.3(7): "The component subtypes of the formal and actual
--  array types shall statically match."

it passes OK in most situations, but fails with 2005 extension and match
checks.

---

generic
  type Data is range <>; -- would pass with "Type Data is private" or anything
even less constraint
  type Table is array (Positive range <>) of access Data;
package Test is

end Test;

---

with Test;

package Test_2 is

  type My_Data is range 0 .. 16#ff#;
  type Data_Table is array (Positive range <>) of access My_Data;

  package Instance is new Test
    (
     Data  => My_Data,
     Table => Data_Table
    );

end Test_2;

---

gcc -c -gnatc -g -gnatq -gnatQ test_2.ads
test_2.ads:11:16: component subtype of actual does not match that of formal
"Table"
test_2.ads:11:16: instantiation abandoned

Reply via email to