aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/sem_res.adb
diff options
context:
space:
mode:
authorSteve Baird <baird@adacore.com>2023-08-10 15:39:01 -0700
committerMarc Poulhiès <poulhies@adacore.com>2023-09-05 13:05:13 +0200
commitbed30418f910df5ea605b7f5ee4b86a6ab7e9411 (patch)
tree593e6724edab2dad16a1aeccfafd6660683322b2 /gcc/ada/sem_res.adb
parent46644c3fd7c2c6baf1bfde0734bfd50975faa1c4 (diff)
downloadgcc-bed30418f910df5ea605b7f5ee4b86a6ab7e9411.zip
gcc-bed30418f910df5ea605b7f5ee4b86a6ab7e9411.tar.gz
gcc-bed30418f910df5ea605b7f5ee4b86a6ab7e9411.tar.bz2
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.
Diffstat (limited to 'gcc/ada/sem_res.adb')
-rw-r--r--gcc/ada/sem_res.adb1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/ada/sem_res.adb b/gcc/ada/sem_res.adb
index 9755e4d..c708d04 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