[gcc r12-1617] [Ada] Do not clear Is_True_Constant flag on imported constants

Pierre-Marie de Rodat pmderodat@gcc.gnu.org
Fri Jun 18 08:38:09 GMT 2021


https://gcc.gnu.org/g:2a8dbd6b244df31819c378626007c45f001f7136

commit r12-1617-g2a8dbd6b244df31819c378626007c45f001f7136
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Tue Mar 16 10:24:39 2021 +0100

    [Ada] Do not clear Is_True_Constant flag on imported constants
    
    gcc/ada/
    
            * sem_prag.adb (Process_Import_Or_Interface): Do not
            artificially record a possible modification for a constant.

Diff:
---
 gcc/ada/sem_prag.adb | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb
index 3e6af337dcd..4efb3fb9de3 100644
--- a/gcc/ada/sem_prag.adb
+++ b/gcc/ada/sem_prag.adb
@@ -9136,7 +9136,10 @@ package body Sem_Prag is
 
             Def_Id := Entity (Def_Id);
             Kill_Size_Check_Code (Def_Id);
-            Note_Possible_Modification (Get_Pragma_Arg (Arg1), Sure => False);
+            if Ekind (Def_Id) /= E_Constant then
+               Note_Possible_Modification
+                 (Get_Pragma_Arg (Arg1), Sure => False);
+            end if;
 
          else
             Process_Convention (C, Def_Id);
@@ -9146,7 +9149,10 @@ package body Sem_Prag is
 
             Mark_Ghost_Pragma (N, Def_Id);
             Kill_Size_Check_Code (Def_Id);
-            Note_Possible_Modification (Get_Pragma_Arg (Arg2), Sure => False);
+            if Ekind (Def_Id) /= E_Constant then
+               Note_Possible_Modification
+                 (Get_Pragma_Arg (Arg2), Sure => False);
+            end if;
          end if;
 
          --  Various error checks


More information about the Gcc-cvs mailing list