https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58881
--- Comment #8 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Eric Botcazou <[email protected]>: https://gcc.gnu.org/g:12f3c63de3b4e53b63347c4bee6a82ce66d0078a commit r16-4934-g12f3c63de3b4e53b63347c4bee6a82ce66d0078a Author: Eric Botcazou <[email protected]> Date: Sun Nov 2 19:36:16 2025 +0100 Ada: Fix crash on tagged private type with unknown discriminants This is an old issue with the extension of a tagged private type declared with unknown discriminants in the public part of a generic child unit, although the generic context is not a key factor (i.e. this also happens for a nongeneric child unit). The public part of a child unit does not have visibility on the private part of its parent, so the extension also has unknown discriminants. gcc/ada/ PR ada/58881 * sem_ch3.adb (Build_Derived_Private_Type): Build the underlying full view when the derivation occurs in the public part of the scope of the parent. (Build_Derived_Record_Type): Propagate Has_Unknown_Discriminants in the same circumstances. (Constrain_Discriminated_Type): Give a specific error message for any type with the Has_Unknown_Discriminants flag. gcc/testsuite/ * gnat.dg/specs/unknown_discr1.ads: New test. * gnat.dg/specs/unknown_discr1_pkg.ads: New helper. * gnat.dg/specs/unknown_discr1_pkg-child.ads: Likewise. * gnat.dg/specs/unknown_discr1_pkg-g.ads: Likewise. * gnat.dg/specs/unknown_discr1_pkg-inst.ads: Likewise.
