[Ada] Spurious error on private type in ghost expression function

2020-06-19  Ed Schonberg  <schonberg@adacore.com>

gcc/ada/

	* sem_ch6.adb (Analyze_Expression_Function): Do not indicate
	that the function has a completion if it appears within a Ghost
	generic package.
This commit is contained in:
Ed Schonberg 2020-04-30 15:19:16 -04:00 committed by Pierre-Marie de Rodat
parent 74d09f3ee9
commit a6d7dfbbb2
1 changed files with 6 additions and 1 deletions

View File

@ -499,9 +499,14 @@ package body Sem_Ch6 is
-- Within a generic preanalyze the original expression for name
-- capture. The body is also generated but plays no role in
-- this because it is not part of the original source.
-- If this is an ignored Ghost entity, analysis of the generated
-- body is needed to hide external references (as is done in
-- Analyze_Subprogram_Body) after which the the subprogram profile
-- can be frozen, which is needed to expand calls to such an ignored
-- Ghost subprogram.
if Inside_A_Generic then
Set_Has_Completion (Def_Id);
Set_Has_Completion (Def_Id, not Is_Ignored_Ghost_Entity (Def_Id));
Push_Scope (Def_Id);
Install_Formals (Def_Id);
Preanalyze_Spec_Expression (Expr, Etype (Def_Id));