2019-12-13 Ed Schonberg <schonberg@adacore.com>
gcc/ada/
* sem_ch7.adb (Analyze_Package_Body_Helper): Do not call
Declare_Inherited_Private_Subprograms on s child body: the
required operations have already been created when analyzing the
corresponding package declaration. This prevents a redeclaration
of inehrited operation, and a crash when inserting the new
operation in the current scope.
From-SVN: r279349
+2019-12-13 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch7.adb (Analyze_Package_Body_Helper): Do not call
+ Declare_Inherited_Private_Subprograms on s child body: the
+ required operations have already been created when analyzing the
+ corresponding package declaration. This prevents a redeclaration
+ of inehrited operation, and a crash when inserting the new
+ operation in the current scope.
+
2019-12-13 Yannick Moy <moy@adacore.com>
* sem_prag.adb (Analyze_Depends_In_Decl_Part,
-- This is a nested package, so it may be necessary to declare certain
-- inherited subprograms that are not yet visible because the parent
-- type's subprograms are now visible.
+ -- Note that for child units these operations were generated when
+ -- analyzing the package specification.
if Ekind (Scope (Spec_Id)) = E_Package
and then Scope (Spec_Id) /= Standard_Standard
+ and then not Is_Child_Unit (Spec_Id)
then
Declare_Inherited_Private_Subprograms (Spec_Id);
end if;