]> git.ipfire.org Git - thirdparty/gcc.git/commit
Ada: Fix bogus error on inherited operation for extension of type instance
authorEric Botcazou <ebotcazou@adacore.com>
Fri, 7 Nov 2025 19:42:57 +0000 (20:42 +0100)
committerEric Botcazou <ebotcazou@adacore.com>
Fri, 7 Nov 2025 19:47:12 +0000 (20:47 +0100)
commitc14a1ed99c380ae7f812932d8e8f5152bb6c1c19
tree525ed9bb7f5047fb2e292b65bb5dff37ef8676d7
parentd14d24b26126ec9c6c8ba5b2e573ed8e26347e6b
Ada: Fix bogus error on inherited operation for extension of type instance

It comes from a small discrepancy between class-wide subtypes and types:
they both have unknown discriminants, but only the latter may have
discriminants, which causes Subtypes_Statically_Match to return False.

gcc/ada/
PR ada/83188
* sem_eval.adb (Subtypes_Statically_Match): Deal with class-wide
subtypes whose class-wide types have discriminants.

gcc/testsuite/
* gnat.dg/class_wide6.ads, gnat.dg/class_wide6.adb: New test.
* gnat.dg/class_wide6_pkg.ads: New helper.
gcc/ada/sem_eval.adb
gcc/testsuite/gnat.dg/class_wide6.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/class_wide6.ads [new file with mode: 0644]
gcc/testsuite/gnat.dg/class_wide6_pkg.ads [new file with mode: 0644]