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;