[Ada] Missing implicit interface type conversion
authorJavier Miranda <miranda@adacore.com>
Wed, 10 Jul 2019 09:00:16 +0000 (09:00 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Wed, 10 Jul 2019 09:00:16 +0000 (09:00 +0000)
commit5a6446841aa17a717f2f04ec22e507c86c864355
treee3c003cef5af854fca79a551e074c3d23ab52dfe
parentff3ee5e5ef8c91d94a0ff6236a46dc46a670f1c3
[Ada] Missing implicit interface type conversion

The compiler skips adding an implicit type conversion when the interface
type is visible through a limited-with clause.

No small reproducer available.

2019-07-10  Javier Miranda  <miranda@adacore.com>

gcc/ada/

* exp_ch6.adb (Is_Class_Wide_Interface_Type): New subprogram.
(Expand_Call_Helper): Handle non-limited views when we check if
any formal is a class-wide interface type.
* exp_disp.adb (Expand_Interface_Actuals): Handle non-limited
views when we look for interface type formals to force "this"
displacement.

From-SVN: r273328
gcc/ada/ChangeLog
gcc/ada/exp_ch6.adb
gcc/ada/exp_disp.adb