From: Javier Miranda <mira...@adacore.com>

Complete previous patch; required to avoid regressions in GNATProve.

gcc/ada/ChangeLog:

        * sem_ch6.adb (Analyze_Expression_Function): Set the parent of
        the new node to be the parent of the original to get the proper
        context, which is needed for complete error reporting and for
        semantic analysis. Patch suggested by Eric Botcazou.

Tested on x86_64-pc-linux-gnu, committed on master.

---
 gcc/ada/sem_ch6.adb | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/gcc/ada/sem_ch6.adb b/gcc/ada/sem_ch6.adb
index ab12f22ad51..2e619d89444 100644
--- a/gcc/ada/sem_ch6.adb
+++ b/gcc/ada/sem_ch6.adb
@@ -427,6 +427,12 @@ package body Sem_Ch6 is
          --  As elsewhere, we do not emit freeze nodes within a generic unit.
 
          if not Inside_A_Generic then
+            --  Set the parent of the new node to be the parent of the original
+            --  to get the proper context, which is needed for complete error
+            --  reporting and for semantic analysis.
+
+            Set_Parent (New_Body, Parent (N));
+
             Freeze_Expr_Types
               (Def_Id => Def_Id,
                Typ    => Typ,
-- 
2.43.0

Reply via email to