[Ada] Fix incorrect stub generation for types in instances
authorEric Botcazou <ebotcazou@adacore.com>
Mon, 19 Aug 2019 08:36:21 +0000 (08:36 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Mon, 19 Aug 2019 08:36:21 +0000 (08:36 +0000)
commit1f5c7ba85856618c1f14d4f581966baadbe02ddd
tree08f15072d6190affb2f0d4220b105d5471760853
parent4527ea2ed93d705b05a01a63561839748655505c
[Ada] Fix incorrect stub generation for types in instances

This fixes a fallout of a recent change clearing the
Is_Generic_Actual_Type on the implicit full view of a private actual
type in an instance.  This flag is used to help disambiguating formal
types instantiated on the same actual type within an instance, but it
should be cleared outside the instance to let the usual disambiguation
rules apply again to these types outside the instance.

This in particular means that Exp_Dist cannot rely on it to detect
subtypes representing generic actual types, hence the need for the new
predicate.

2019-08-19  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

* exp_dist.adb (Is_Generic_Actual_Subtype): New predicate.
(Build_From_Any_Call, Build_To_Any_Call, Build_TypeCode_Call):
Use it instead of Is_Generic_Actual_Type flag to detect subtypes
representing generic actual types.

From-SVN: r274650
gcc/ada/ChangeLog
gcc/ada/exp_dist.adb