[gcc r11-1104] [Ada] Fix wrong type being used for range check generation

Pierre-Marie de Rodat pmderodat@gcc.gnu.org
Tue Jun 9 08:11:43 GMT 2020


https://gcc.gnu.org/g:10212bd8f06e0f8577e15883cae6f9b7c5f381d8

commit r11-1104-g10212bd8f06e0f8577e15883cae6f9b7c5f381d8
Author: Ghjuvan Lacambre <lacambre@adacore.com>
Date:   Fri Feb 28 14:56:31 2020 +0100

    [Ada] Fix wrong type being used for range check generation
    
    2020-06-09  Ghjuvan Lacambre  <lacambre@adacore.com>
    
    gcc/ada/
    
            * sem_res.adb (Resolve_Qualified_Expression): Use Subtype_Mark
            type.

Diff:
---
 gcc/ada/sem_res.adb | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/gcc/ada/sem_res.adb b/gcc/ada/sem_res.adb
index 6e26ffb3c45..15d08fee4fc 100644
--- a/gcc/ada/sem_res.adb
+++ b/gcc/ada/sem_res.adb
@@ -10004,8 +10004,10 @@ package body Sem_Res is
       --  check may convert an illegal static expression and result in warning
       --  rather than giving an error (e.g Integer'(Integer'Last + 1)).
 
-      if Nkind (N) = N_Qualified_Expression and then Is_Scalar_Type (Typ) then
-         Apply_Scalar_Range_Check (Expr, Typ);
+      if Nkind (N) = N_Qualified_Expression
+        and then Is_Scalar_Type (Target_Typ)
+      then
+         Apply_Scalar_Range_Check (Expr, Target_Typ);
       end if;
 
       --  AI12-0100: Once the qualified expression is resolved, check whether


More information about the Gcc-cvs mailing list