From fd52383f3f90de94e048e7902437b08eafa4adac Mon Sep 17 00:00:00 2001
From: Javier Miranda <miranda@adacore.com>
Date: Wed, 4 Dec 2024 17:49:01 +0000
Subject: [PATCH] ada: Cleanup preanalysis of static expressions

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.
---
 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 ab12f22ad51a..2e619d89444a 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,
-- 
GitLab