[gcc r12-3520] Do not issue size error for too large array type

Eric Botcazou ebotcazou@gcc.gnu.org
Tue Sep 14 09:16:41 GMT 2021


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

commit r12-3520-gf349a8b5928ec66cad91c00623db67e747be1600
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Tue Sep 14 11:14:37 2021 +0200

    Do not issue size error for too large array type
    
    The error is to be issued when objects of the type are declared instead.
    
    gcc/ada/
            * gcc-interface/decl.c (validate_size): Do not issue an error if the
            old size has overflowed.

Diff:
---
 gcc/ada/gcc-interface/decl.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/gcc/ada/gcc-interface/decl.c b/gcc/ada/gcc-interface/decl.c
index 20e3eea4cc5..0120b213a77 100644
--- a/gcc/ada/gcc-interface/decl.c
+++ b/gcc/ada/gcc-interface/decl.c
@@ -9191,8 +9191,7 @@ validate_size (Uint uint_size, tree gnu_type, Entity_Id gnat_object,
   /* Issue an error either if the default size of the object isn't a constant
      or if the new size is smaller than it.  */
   if (TREE_CODE (old_size) != INTEGER_CST
-      || TREE_OVERFLOW (old_size)
-      || tree_int_cst_lt (size, old_size))
+      || (!TREE_OVERFLOW (old_size) && tree_int_cst_lt (size, old_size)))
     {
       char buf[128];
       const char *s;


More information about the Gcc-cvs mailing list