https://gcc.gnu.org/g:69e04cc79481edcbde4cb2faccf0d8ae4f798b21

commit r16-9000-g69e04cc79481edcbde4cb2faccf0d8ae4f798b21
Author: Marc Poulhiès <[email protected]>
Date:   Thu Feb 19 11:18:23 2026 +0100

    ada: Fix freezing of nested discriminated type
    
    Simply creating the freeze node for the base type of a discriminated type
    without adjusting the scope and the visible declarations leads to an
    incorrect tree that crashes the compiler when unnesting the predicate
    function.
    
    gcc/ada/ChangeLog:
    
            * sem_ch3.adb (Find_Type_Of_Object): Adjust freezing of the base
            type of a discriminated type.
    
    Co-authored-by: Eric Botcazou <[email protected]>

Diff:
---
 gcc/ada/sem_ch3.adb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/ada/sem_ch3.adb b/gcc/ada/sem_ch3.adb
index 327a9ae74832..c84f288f654d 100644
--- a/gcc/ada/sem_ch3.adb
+++ b/gcc/ada/sem_ch3.adb
@@ -19209,7 +19209,7 @@ package body Sem_Ch3 is
          --  of discriminated private type without a full view.
 
          else
-            Insert_Actions (Obj_Def, Freeze_Entity (Base_Type (T), P));
+            Freeze_Before (Obj_Def, Base_Type (T));
          end if;
 
       --  Ada 2005 AI-406: the object definition in an object declaration

Reply via email to