https://gcc.gnu.org/g:acc54e0cf014b01b4e8b2579002729316fe93834

commit r16-1307-gacc54e0cf014b01b4e8b2579002729316fe93834
Author: Ronan Desplanques <desplanq...@adacore.com>
Date:   Thu Feb 27 11:25:45 2025 +0100

    ada: Tweak Kill_Current_Values
    
    Is_Object returns True for "record field" entities, which might make
    sense in some contexts but not when Kill_Current_Values is called in a
    default expression of a record component. This patch refines the choice
    of considered entities in Kill_Current_Values accordingly.
    
    gcc/ada/ChangeLog:
    
            * sem_util.adb (Kill_Current_Values): Tweak condition.

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

diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb
index 0ce9e95a6206..02ebb71b562c 100644
--- a/gcc/ada/sem_util.adb
+++ b/gcc/ada/sem_util.adb
@@ -21907,7 +21907,7 @@ package body Sem_Util is
          Set_Last_Assignment (Ent, Empty);
       end if;
 
-      if Is_Object (Ent) then
+      if Is_Object (Ent) and then Ekind (Ent) not in Record_Field_Kind then
          if not Last_Assignment_Only then
             Kill_Checks (Ent);
             Set_Current_Value (Ent, Empty);

Reply via email to