diff options
author | Ed Schonberg <schonberg@adacore.com> | 2020-04-30 15:19:16 -0400 |
---|---|---|
committer | Pierre-Marie de Rodat <derodat@adacore.com> | 2020-06-19 04:17:21 -0400 |
commit | a6d7dfbbb2f1fe25e040a31f17c03d292b5b5b61 (patch) | |
tree | ede33d8a381941cab334e8a6d76b54e004ff87d6 /gcc | |
parent | 74d09f3ee936c7e08539beba6f5bb2547b4640b9 (diff) | |
download | gcc-a6d7dfbbb2f1fe25e040a31f17c03d292b5b5b61.zip gcc-a6d7dfbbb2f1fe25e040a31f17c03d292b5b5b61.tar.gz gcc-a6d7dfbbb2f1fe25e040a31f17c03d292b5b5b61.tar.bz2 |
[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.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/sem_ch6.adb | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ada/sem_ch6.adb b/gcc/ada/sem_ch6.adb index 59cbccd..69e21bb 100644 --- a/gcc/ada/sem_ch6.adb +++ b/gcc/ada/sem_ch6.adb @@ -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)); |