[Ada] Crash on tagged equality
commite1a20c09aac4149f3099cfc313bbfcd6672064bc
authorHristian Kirtchev <kirtchev@adacore.com>
Wed, 14 Nov 2018 11:40:41 +0000 (14 11:40 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Wed, 14 Nov 2018 11:40:41 +0000 (14 11:40 +0000)
tree32eefaf53c2afd9188b84c7a9a6c101e6db35192
parentcacf87ce6c6f7c35c9e10ce635076481912ba092
[Ada] Crash on tagged equality

This patch corrects the retrieval of the equality function when it is
inherited from a parent tagged type.

2018-11-14  Hristian Kirtchev  <kirtchev@adacore.com>

gcc/ada/

* exp_ch4.adb (Expand_N_Op_Eq): Remove duplicated code and use
routine Find_Equality instead.
(Find_Equality): New routine.

gcc/testsuite/

* gnat.dg/equal4.adb, gnat.dg/equal4.ads,
gnat.dg/equal4_controlled_filter.ads,
gnat.dg/equal4_full_selector_filter.ads,
gnat.dg/equal4_smart_pointers.ads: New testcase.

From-SVN: r266114
gcc/ada/ChangeLog
gcc/ada/exp_ch4.adb
gcc/testsuite/ChangeLog
gcc/testsuite/gnat.dg/equal4.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/equal4.ads [new file with mode: 0644]
gcc/testsuite/gnat.dg/equal4_controlled_filter.ads [new file with mode: 0644]
gcc/testsuite/gnat.dg/equal4_full_selector_filter.ads [new file with mode: 0644]
gcc/testsuite/gnat.dg/equal4_smart_pointers.ads [new file with mode: 0644]