aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRobert Dewar <dewar@adacore.com>2008-05-20 14:51:17 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2008-05-20 14:51:17 +0200
commit09bc9ab600e7492588d6cbd9d565cf541d1480a8 (patch)
tree3acaae64e746b354a27b2162c0a3d1b8e3a75916 /gcc
parentcd2fb9207ace61a867ce118129cdb4ecc0d0a8f7 (diff)
downloadgcc-09bc9ab600e7492588d6cbd9d565cf541d1480a8.zip
gcc-09bc9ab600e7492588d6cbd9d565cf541d1480a8.tar.gz
gcc-09bc9ab600e7492588d6cbd9d565cf541d1480a8.tar.bz2
sem_res.adb (Resolve_Op_Not): Warn on double negation
2008-05-20 Robert Dewar <dewar@adacore.com> * sem_res.adb (Resolve_Op_Not): Warn on double negation From-SVN: r135644
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/sem_res.adb13
1 files changed, 13 insertions, 0 deletions
diff --git a/gcc/ada/sem_res.adb b/gcc/ada/sem_res.adb
index 39cd895..9cc285f 100644
--- a/gcc/ada/sem_res.adb
+++ b/gcc/ada/sem_res.adb
@@ -6975,6 +6975,19 @@ package body Sem_Res is
Error_Msg_N ("?not expression should be parenthesized here!", N);
end if;
+ -- Warn on double negation if checking redundant constructs
+
+ if Warn_On_Redundant_Constructs
+ and then Comes_From_Source (N)
+ and then Comes_From_Source (Right_Opnd (N))
+ and then Root_Type (Typ) = Standard_Boolean
+ and then Nkind (Right_Opnd (N)) = N_Op_Not
+ then
+ Error_Msg_N ("redundant double negation?", N);
+ end if;
+
+ -- Complete resolution and evaluation of NOT
+
Resolve (Right_Opnd (N), B_Typ);
Check_Unset_Reference (Right_Opnd (N));
Set_Etype (N, B_Typ);