The compiler reports that an actual does not match the formal when there
is a defaulted formal discrete type because Check_Formal_Package_Instance
fails to skip the implicit base type generated by the compiler.
gcc/ada/ChangeLog:
PR ada/114636
* sem_ch12.adb (Check_Formal_Package_Instance): For a defaulted
formal discrete type, skip the generated implicit base type.
then
-- If the formal is a tagged type the corresponding class-wide
-- type has been generated as well, and it must be skipped.
+ -- Likewise, for a formal discrete type, the base type has been
+ -- generated as well (see Analyze_Formal_Discrete_Type).
- if Is_Type (E2) and then Is_Tagged_Type (E2) then
+ if Is_Type (E2)
+ and then (Is_Tagged_Type (E2) or else Is_Enumeration_Type (E2))
+ then
Next_Entity (E2);
end if;