[gcc r14-3685] ada: Spurious warning about negative modular literal

Marc Poulhi?s dkm@gcc.gnu.org
Tue Sep 5 11:08:20 GMT 2023


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

commit r14-3685-gbed30418f910df5ea605b7f5ee4b86a6ab7e9411
Author: Steve Baird <baird@adacore.com>
Date:   Thu Aug 10 15:39:01 2023 -0700

    ada: Spurious warning about negative modular literal
    
    If -gnatw.m is enabled, the compiler generates a warning if a unary
    minus operator of a modular type is applied to an integer literal.
    This warning was being incorrectly generated in some cases where no integer
    literal is present in the source code.
    
    gcc/ada/
    
            * sem_res.adb (Resolve_Unary_Op): In deciding whether to emit a
            warning about a modular type's unary minus operator being applied
            to an integer literal, ignore integer literals for which
            Comes_From_Source is False.

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

diff --git a/gcc/ada/sem_res.adb b/gcc/ada/sem_res.adb
index 9755e4d14a6d..c708d04fc32a 100644
--- a/gcc/ada/sem_res.adb
+++ b/gcc/ada/sem_res.adb
@@ -12671,6 +12671,7 @@ package body Sem_Res is
       if Warn_On_Suspicious_Modulus_Value
         and then Nkind (N) = N_Op_Minus
         and then Nkind (R) = N_Integer_Literal
+        and then Comes_From_Source (R)
         and then Is_Modular_Integer_Type (B_Typ)
         and then Nkind (Parent (N)) not in N_Qualified_Expression
                                          | N_Type_Conversion


More information about the Gcc-cvs mailing list