From: Steve Baird Date: Thu, 10 Aug 2023 22:39:01 +0000 (-0700) Subject: ada: Spurious warning about negative modular literal X-Git-Tag: basepoints/gcc-15~6454 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bed30418f910df5ea605b7f5ee4b86a6ab7e9411;p=thirdparty%2Fgcc.git 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 --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