Module Name:    src
Committed By:   rillig
Date:           Sun Mar 10 09:24:54 UTC 2024

Modified Files:
        src/usr.bin/xlint/lint1: tree.c

Log Message:
lint: in check for integer overflow, sort operators


To generate a diff of this commit:
cvs rdiff -u -r1.614 -r1.615 src/usr.bin/xlint/lint1/tree.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/xlint/lint1/tree.c
diff -u src/usr.bin/xlint/lint1/tree.c:1.614 src/usr.bin/xlint/lint1/tree.c:1.615
--- src/usr.bin/xlint/lint1/tree.c:1.614	Sat Mar  9 23:55:11 2024
+++ src/usr.bin/xlint/lint1/tree.c	Sun Mar 10 09:24:54 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: tree.c,v 1.614 2024/03/09 23:55:11 rillig Exp $	*/
+/*	$NetBSD: tree.c,v 1.615 2024/03/10 09:24:54 rillig Exp $	*/
 
 /*
  * Copyright (c) 1994, 1995 Jochen Pohl
@@ -37,7 +37,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID)
-__RCSID("$NetBSD: tree.c,v 1.614 2024/03/09 23:55:11 rillig Exp $");
+__RCSID("$NetBSD: tree.c,v 1.615 2024/03/10 09:24:54 rillig Exp $");
 #endif
 
 #include <float.h>
@@ -815,6 +815,9 @@ fold_constant_integer(tnode_t *tn)
 
 	int64_t si;
 	switch (tn->tn_op) {
+	case COMPL:
+		si = ~sl;
+		break;
 	case UPLUS:
 		si = sl;
 		break;
@@ -823,9 +826,6 @@ fold_constant_integer(tnode_t *tn)
 		if (sl != 0 && msb(si, t) == msb(sl, t))
 			ovfl = true;
 		break;
-	case COMPL:
-		si = ~sl;
-		break;
 	case MULT:
 		if (utyp) {
 			si = (int64_t)(ul * ur);
@@ -892,12 +892,12 @@ fold_constant_integer(tnode_t *tn)
 	case LE:
 		si = (utyp ? ul <= ur : sl <= sr) ? 1 : 0;
 		break;
-	case GE:
-		si = (utyp ? ul >= ur : sl >= sr) ? 1 : 0;
-		break;
 	case GT:
 		si = (utyp ? ul > ur : sl > sr) ? 1 : 0;
 		break;
+	case GE:
+		si = (utyp ? ul >= ur : sl >= sr) ? 1 : 0;
+		break;
 	case EQ:
 		si = (utyp ? ul == ur : sl == sr) ? 1 : 0;
 		break;

Reply via email to