Module Name: src
Committed By: rillig
Date: Sat Jan 27 20:03:15 UTC 2024
Modified Files:
src/tests/usr.bin/xlint/lint1: platform_ilp32_c90.c
platform_ilp32_c99.c platform_ilp32_trad.c platform_lp64_c90.c
platform_lp64_c99.c platform_lp64_trad.c
src/usr.bin/xlint/lint1: lex.c
Log Message:
lint: fix type of large integer constants
To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/tests/usr.bin/xlint/lint1/platform_ilp32_c90.c \
src/tests/usr.bin/xlint/lint1/platform_ilp32_c99.c \
src/tests/usr.bin/xlint/lint1/platform_ilp32_trad.c \
src/tests/usr.bin/xlint/lint1/platform_lp64_c90.c \
src/tests/usr.bin/xlint/lint1/platform_lp64_c99.c \
src/tests/usr.bin/xlint/lint1/platform_lp64_trad.c
cvs rdiff -u -r1.202 -r1.203 src/usr.bin/xlint/lint1/lex.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/tests/usr.bin/xlint/lint1/platform_ilp32_c90.c
diff -u src/tests/usr.bin/xlint/lint1/platform_ilp32_c90.c:1.1 src/tests/usr.bin/xlint/lint1/platform_ilp32_c90.c:1.2
--- src/tests/usr.bin/xlint/lint1/platform_ilp32_c90.c:1.1 Sat Jan 27 15:10:57 2024
+++ src/tests/usr.bin/xlint/lint1/platform_ilp32_c90.c Sat Jan 27 20:03:14 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: platform_ilp32_c90.c,v 1.1 2024/01/27 15:10:57 rillig Exp $ */
+/* $NetBSD: platform_ilp32_c90.c,v 1.2 2024/01/27 20:03:14 rillig Exp $ */
# 3 "platform_ilp32_c90.c"
/*
@@ -13,10 +13,12 @@ void *lex_integer[] = {
2147483647,
/* expect+1: ... integer 'int' ... */
0x7fffffff,
+ /* expect+2: warning: integer constant out of range [252] */
/* expect+1: ... integer 'unsigned long' ... */
2147483648,
/* expect+1: ... integer 'unsigned int' ... */
0x80000000,
+ /* expect+2: warning: integer constant out of range [252] */
/* expect+1: ... integer 'unsigned long' ... */
4294967295,
/* expect+1: ... integer 'unsigned int' ... */
@@ -91,10 +93,12 @@ void *lex_integer[] = {
2147483647L,
/* expect+1: ... integer 'long' ... */
0x7fffffffL,
+ /* expect+2: warning: integer constant out of range [252] */
/* expect+1: ... integer 'unsigned long' ... */
2147483648L,
/* expect+1: ... integer 'unsigned long' ... */
0x80000000L,
+ /* expect+2: warning: integer constant out of range [252] */
/* expect+1: ... integer 'unsigned long' ... */
4294967295L,
/* expect+1: ... integer 'unsigned long' ... */
@@ -185,10 +189,12 @@ void *lex_integer[] = {
9223372036854775807LL,
/* expect+1: ... integer 'long long' ... */
0x7fffffffffffffffLL,
+ /* expect+2: warning: integer constant out of range [252] */
/* expect+1: ... integer 'unsigned long long' ... */
9223372036854775808LL,
/* expect+1: ... integer 'unsigned long long' ... */
0x8000000000000000LL,
+ /* expect+2: warning: integer constant out of range [252] */
/* expect+1: ... integer 'unsigned long long' ... */
18446744073709551615LL,
/* expect+1: ... integer 'unsigned long long' ... */
Index: src/tests/usr.bin/xlint/lint1/platform_ilp32_c99.c
diff -u src/tests/usr.bin/xlint/lint1/platform_ilp32_c99.c:1.1 src/tests/usr.bin/xlint/lint1/platform_ilp32_c99.c:1.2
--- src/tests/usr.bin/xlint/lint1/platform_ilp32_c99.c:1.1 Sat Jan 27 15:10:57 2024
+++ src/tests/usr.bin/xlint/lint1/platform_ilp32_c99.c Sat Jan 27 20:03:14 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: platform_ilp32_c99.c,v 1.1 2024/01/27 15:10:57 rillig Exp $ */
+/* $NetBSD: platform_ilp32_c99.c,v 1.2 2024/01/27 20:03:14 rillig Exp $ */
# 3 "platform_ilp32_c99.c"
/*
@@ -13,38 +13,36 @@ void *lex_integer[] = {
2147483647,
/* expect+1: ... integer 'int' ... */
0x7fffffff,
- /* expect+1: ... integer 'unsigned long' ... */
+ /* expect+1: ... integer 'long long' ... */
2147483648,
/* expect+1: ... integer 'unsigned int' ... */
0x80000000,
- /* expect+1: ... integer 'unsigned long' ... */
+ /* expect+1: ... integer 'long long' ... */
4294967295,
/* expect+1: ... integer 'unsigned int' ... */
0xffffffff,
- /* expect+1: warning: integer constant out of range [252] */
+ /* expect+1: ... integer 'long long' ... */
4294967296,
- /* expect+1: warning: integer constant out of range [252] */
+ /* expect+1: ... integer 'long long' ... */
0x0000000100000000,
- /* expect+2: ... integer 'unsigned long' ... */
- /* expect+1: warning: integer constant out of range [252] */
+ /* expect+1: ... integer 'long long' ... */
9223372036854775807,
- /* expect+2: ... integer 'unsigned long' ... */
- /* expect+1: warning: integer constant out of range [252] */
+ /* expect+1: ... integer 'long long' ... */
0x7fffffffffffffff,
+ /* expect+2: ... integer 'unsigned long long' ... */
/* expect+1: warning: integer constant out of range [252] */
9223372036854775808,
- /* expect+1: warning: integer constant out of range [252] */
+ /* expect+1: ... integer 'unsigned long long' ... */
0x8000000000000000,
- /* expect+2: ... integer 'unsigned long' ... */
+ /* expect+2: ... integer 'unsigned long long' ... */
/* expect+1: warning: integer constant out of range [252] */
18446744073709551615,
- /* expect+2: ... integer 'unsigned long' ... */
- /* expect+1: warning: integer constant out of range [252] */
+ /* expect+1: ... integer 'unsigned long long' ... */
0xffffffffffffffff,
- /* expect+2: ... integer 'unsigned long' ... */
+ /* expect+2: ... integer 'unsigned long long' ... */
/* expect+1: warning: integer constant out of range [252] */
18446744073709551616,
- /* expect+2: ... integer 'unsigned long' ... */
+ /* expect+2: ... integer 'unsigned long long' ... */
/* expect+1: warning: integer constant out of range [252] */
0x00010000000000000000,
@@ -60,30 +58,26 @@ void *lex_integer[] = {
4294967295U,
/* expect+1: ... integer 'unsigned int' ... */
0xffffffffU,
- /* expect+1: warning: integer constant out of range [252] */
+ /* expect+1: ... integer 'unsigned long long' ... */
4294967296U,
- /* expect+1: warning: integer constant out of range [252] */
+ /* expect+1: ... integer 'unsigned long long' ... */
0x0000000100000000U,
- /* expect+2: ... integer 'unsigned long' ... */
- /* expect+1: warning: integer constant out of range [252] */
+ /* expect+1: ... integer 'unsigned long long' ... */
9223372036854775807U,
- /* expect+2: warning: integer constant out of range [252] */
- /* expect+1: ... integer 'unsigned long' ... */
+ /* expect+1: ... integer 'unsigned long long' ... */
0x7fffffffffffffffU,
- /* expect+1: warning: integer constant out of range [252] */
+ /* expect+1: ... integer 'unsigned long long' ... */
9223372036854775808U,
- /* expect+1: warning: integer constant out of range [252] */
+ /* expect+1: ... integer 'unsigned long long' ... */
0x8000000000000000U,
- /* expect+2: ... integer 'unsigned long' ... */
- /* expect+1: warning: integer constant out of range [252] */
+ /* expect+1: ... integer 'unsigned long long' ... */
18446744073709551615U,
- /* expect+2: ... integer 'unsigned long' ... */
- /* expect+1: warning: integer constant out of range [252] */
+ /* expect+1: ... integer 'unsigned long long' ... */
0xffffffffffffffffU,
- /* expect+2: ... integer 'unsigned long' ... */
+ /* expect+2: ... integer 'unsigned long long' ... */
/* expect+1: warning: integer constant out of range [252] */
18446744073709551616U,
- /* expect+2: ... integer 'unsigned long' ... */
+ /* expect+2: ... integer 'unsigned long long' ... */
/* expect+1: warning: integer constant out of range [252] */
0x00010000000000000000U,
@@ -91,38 +85,36 @@ void *lex_integer[] = {
2147483647L,
/* expect+1: ... integer 'long' ... */
0x7fffffffL,
- /* expect+1: ... integer 'unsigned long' ... */
+ /* expect+1: ... integer 'long long' ... */
2147483648L,
/* expect+1: ... integer 'unsigned long' ... */
0x80000000L,
- /* expect+1: ... integer 'unsigned long' ... */
+ /* expect+1: ... integer 'long long' ... */
4294967295L,
/* expect+1: ... integer 'unsigned long' ... */
0xffffffffL,
- /* expect+1: warning: integer constant out of range [252] */
+ /* expect+1: ... integer 'long long' ... */
4294967296L,
- /* expect+1: warning: integer constant out of range [252] */
+ /* expect+1: ... integer 'long long' ... */
0x0000000100000000L,
- /* expect+2: ... integer 'unsigned long' ... */
- /* expect+1: warning: integer constant out of range [252] */
+ /* expect+1: ... integer 'long long' ... */
9223372036854775807L,
- /* expect+2: ... integer 'unsigned long' ... */
- /* expect+1: warning: integer constant out of range [252] */
+ /* expect+1: ... integer 'long long' ... */
0x7fffffffffffffffL,
+ /* expect+2: ... integer 'unsigned long long' ... */
/* expect+1: warning: integer constant out of range [252] */
9223372036854775808L,
- /* expect+1: warning: integer constant out of range [252] */
+ /* expect+1: ... integer 'unsigned long long' ... */
0x8000000000000000L,
- /* expect+2: ... integer 'unsigned long' ... */
+ /* expect+2: ... integer 'unsigned long long' ... */
/* expect+1: warning: integer constant out of range [252] */
18446744073709551615L,
- /* expect+2: warning: integer constant out of range [252] */
- /* expect+1: ... integer 'unsigned long' ... */
+ /* expect+1: ... integer 'unsigned long long' ... */
0xffffffffffffffffL,
/* expect+2: warning: integer constant out of range [252] */
- /* expect+1: ... integer 'unsigned long' ... */
+ /* expect+1: ... integer 'unsigned long long' ... */
18446744073709551616L,
- /* expect+2: ... integer 'unsigned long' ... */
+ /* expect+2: ... integer 'unsigned long long' ... */
/* expect+1: warning: integer constant out of range [252] */
0x00010000000000000000L,
@@ -138,30 +130,26 @@ void *lex_integer[] = {
4294967295UL,
/* expect+1: ... integer 'unsigned long' ... */
0xffffffffUL,
- /* expect+1: warning: integer constant out of range [252] */
+ /* expect+1: ... integer 'unsigned long long' ... */
4294967296UL,
- /* expect+1: warning: integer constant out of range [252] */
+ /* expect+1: ... integer 'unsigned long long' ... */
0x0000000100000000UL,
- /* expect+2: ... integer 'unsigned long' ... */
- /* expect+1: warning: integer constant out of range [252] */
+ /* expect+1: ... integer 'unsigned long long' ... */
9223372036854775807UL,
- /* expect+2: ... integer 'unsigned long' ... */
- /* expect+1: warning: integer constant out of range [252] */
+ /* expect+1: ... integer 'unsigned long long' ... */
0x7fffffffffffffffUL,
- /* expect+1: warning: integer constant out of range [252] */
+ /* expect+1: ... integer 'unsigned long long' ... */
9223372036854775808UL,
- /* expect+1: warning: integer constant out of range [252] */
+ /* expect+1: ... integer 'unsigned long long' ... */
0x8000000000000000UL,
- /* expect+2: ... integer 'unsigned long' ... */
- /* expect+1: warning: integer constant out of range [252] */
+ /* expect+1: ... integer 'unsigned long long' ... */
18446744073709551615UL,
- /* expect+2: ... integer 'unsigned long' ... */
- /* expect+1: warning: integer constant out of range [252] */
+ /* expect+1: ... integer 'unsigned long long' ... */
0xffffffffffffffffUL,
- /* expect+2: ... integer 'unsigned long' ... */
+ /* expect+2: ... integer 'unsigned long long' ... */
/* expect+1: warning: integer constant out of range [252] */
18446744073709551616UL,
- /* expect+2: ... integer 'unsigned long' ... */
+ /* expect+2: ... integer 'unsigned long long' ... */
/* expect+1: warning: integer constant out of range [252] */
0x00010000000000000000UL,
@@ -185,10 +173,12 @@ void *lex_integer[] = {
9223372036854775807LL,
/* expect+1: ... integer 'long long' ... */
0x7fffffffffffffffLL,
+ /* expect+2: warning: integer constant out of range [252] */
/* expect+1: ... integer 'unsigned long long' ... */
9223372036854775808LL,
/* expect+1: ... integer 'unsigned long long' ... */
0x8000000000000000LL,
+ /* expect+2: warning: integer constant out of range [252] */
/* expect+1: ... integer 'unsigned long long' ... */
18446744073709551615LL,
/* expect+1: ... integer 'unsigned long long' ... */
Index: src/tests/usr.bin/xlint/lint1/platform_ilp32_trad.c
diff -u src/tests/usr.bin/xlint/lint1/platform_ilp32_trad.c:1.1 src/tests/usr.bin/xlint/lint1/platform_ilp32_trad.c:1.2
--- src/tests/usr.bin/xlint/lint1/platform_ilp32_trad.c:1.1 Sat Jan 27 15:10:57 2024
+++ src/tests/usr.bin/xlint/lint1/platform_ilp32_trad.c Sat Jan 27 20:03:14 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: platform_ilp32_trad.c,v 1.1 2024/01/27 15:10:57 rillig Exp $ */
+/* $NetBSD: platform_ilp32_trad.c,v 1.2 2024/01/27 20:03:14 rillig Exp $ */
# 3 "platform_ilp32_trad.c"
/*
@@ -52,32 +52,34 @@ void *lex_integer[] = {
2147483647L,
/* expect+1: ... integer 'long' ... */
0x7fffffffL,
+ /* expect+2: warning: integer constant out of range [252] */
/* expect+1: ... integer 'long' ... */
2147483648L,
/* expect+1: ... integer 'long' ... */
0x80000000L,
+ /* expect+2: warning: integer constant out of range [252] */
/* expect+1: ... integer 'long' ... */
4294967295L,
/* expect+1: ... integer 'long' ... */
0xffffffffL,
- /* TODO: warning: integer constant out of range [252] */
+ /* expect+1: warning: integer constant out of range [252] */
4294967296L,
- /* TODO: warning: integer constant out of range [252] */
+ /* expect+1: warning: integer constant out of range [252] */
0x0000000100000000L,
/* expect+2: ... integer 'long' ... */
- /* TODO: warning: integer constant out of range [252] */
+ /* expect+1: warning: integer constant out of range [252] */
9223372036854775807L,
/* expect+2: ... integer 'long' ... */
- /* TODO: warning: integer constant out of range [252] */
+ /* expect+1: warning: integer constant out of range [252] */
0x7fffffffffffffffL,
- /* TODO: warning: integer constant out of range [252] */
+ /* expect+1: warning: integer constant out of range [252] */
9223372036854775808L,
- /* TODO: warning: integer constant out of range [252] */
+ /* expect+1: warning: integer constant out of range [252] */
0x8000000000000000L,
/* expect+2: ... integer 'long' ... */
- /* TODO: warning: integer constant out of range [252] */
+ /* expect+1: warning: integer constant out of range [252] */
18446744073709551615L,
- /* TODO: warning: integer constant out of range [252] */
+ /* expect+2: warning: integer constant out of range [252] */
/* expect+1: ... integer 'long' ... */
0xffffffffffffffffL,
/* expect+2: warning: integer constant out of range [252] */
@@ -107,10 +109,12 @@ void *lex_integer[] = {
9223372036854775807LL,
/* expect+1: ... integer 'long long' ... */
0x7fffffffffffffffLL,
+ /* expect+2: warning: integer constant out of range [252] */
/* expect+1: ... integer 'long long' ... */
9223372036854775808LL,
/* expect+1: ... integer 'long long' ... */
0x8000000000000000LL,
+ /* expect+2: warning: integer constant out of range [252] */
/* expect+1: ... integer 'long long' ... */
18446744073709551615LL,
/* expect+1: ... integer 'long long' ... */
Index: src/tests/usr.bin/xlint/lint1/platform_lp64_c90.c
diff -u src/tests/usr.bin/xlint/lint1/platform_lp64_c90.c:1.1 src/tests/usr.bin/xlint/lint1/platform_lp64_c90.c:1.2
--- src/tests/usr.bin/xlint/lint1/platform_lp64_c90.c:1.1 Sat Jan 27 15:10:57 2024
+++ src/tests/usr.bin/xlint/lint1/platform_lp64_c90.c Sat Jan 27 20:03:14 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: platform_lp64_c90.c,v 1.1 2024/01/27 15:10:57 rillig Exp $ */
+/* $NetBSD: platform_lp64_c90.c,v 1.2 2024/01/27 20:03:14 rillig Exp $ */
# 3 "platform_lp64_c90.c"
/*
@@ -29,10 +29,12 @@ void *lex_integer[] = {
9223372036854775807,
/* expect+1: ... integer 'long' ... */
0x7fffffffffffffff,
+ /* expect+2: warning: integer constant out of range [252] */
/* expect+1: ... integer 'unsigned long' ... */
9223372036854775808,
/* expect+1: ... integer 'unsigned long' ... */
0x8000000000000000,
+ /* expect+2: warning: integer constant out of range [252] */
/* expect+1: ... integer 'unsigned long' ... */
18446744073709551615,
/* expect+1: ... integer 'unsigned long' ... */
@@ -99,10 +101,12 @@ void *lex_integer[] = {
9223372036854775807L,
/* expect+1: ... integer 'long' ... */
0x7fffffffffffffffL,
+ /* expect+2: warning: integer constant out of range [252] */
/* expect+1: ... integer 'unsigned long' ... */
9223372036854775808L,
/* expect+1: ... integer 'unsigned long' ... */
0x8000000000000000L,
+ /* expect+2: warning: integer constant out of range [252] */
/* expect+1: ... integer 'unsigned long' ... */
18446744073709551615L,
/* expect+1: ... integer 'unsigned long' ... */
@@ -169,10 +173,12 @@ void *lex_integer[] = {
9223372036854775807LL,
/* expect+1: ... integer 'long long' ... */
0x7fffffffffffffffLL,
+ /* expect+2: warning: integer constant out of range [252] */
/* expect+1: ... integer 'unsigned long long' ... */
9223372036854775808LL,
/* expect+1: ... integer 'unsigned long long' ... */
0x8000000000000000LL,
+ /* expect+2: warning: integer constant out of range [252] */
/* expect+1: ... integer 'unsigned long long' ... */
18446744073709551615LL,
/* expect+1: ... integer 'unsigned long long' ... */
Index: src/tests/usr.bin/xlint/lint1/platform_lp64_c99.c
diff -u src/tests/usr.bin/xlint/lint1/platform_lp64_c99.c:1.1 src/tests/usr.bin/xlint/lint1/platform_lp64_c99.c:1.2
--- src/tests/usr.bin/xlint/lint1/platform_lp64_c99.c:1.1 Sat Jan 27 15:10:57 2024
+++ src/tests/usr.bin/xlint/lint1/platform_lp64_c99.c Sat Jan 27 20:03:14 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: platform_lp64_c99.c,v 1.1 2024/01/27 15:10:57 rillig Exp $ */
+/* $NetBSD: platform_lp64_c99.c,v 1.2 2024/01/27 20:03:14 rillig Exp $ */
# 3 "platform_lp64_c99.c"
/*
@@ -29,15 +29,17 @@ void *lex_integer[] = {
9223372036854775807,
/* expect+1: ... integer 'long' ... */
0x7fffffffffffffff,
- /* expect+1: ... integer 'unsigned long' ... */
+ /* expect+2: warning: integer constant out of range [252] */
+ /* expect+1: ... integer 'unsigned long long' ... */
9223372036854775808,
/* expect+1: ... integer 'unsigned long' ... */
0x8000000000000000,
- /* expect+1: ... integer 'unsigned long' ... */
+ /* expect+2: warning: integer constant out of range [252] */
+ /* expect+1: ... integer 'unsigned long long' ... */
18446744073709551615,
/* expect+1: ... integer 'unsigned long' ... */
0xffffffffffffffff,
- /* expect+2: ... integer 'unsigned long' ... */
+ /* expect+2: ... integer 'unsigned long long' ... */
/* expect+1: warning: integer constant out of range [252] */
18446744073709551616,
/* expect+2: ... integer 'unsigned long' ... */
@@ -99,16 +101,18 @@ void *lex_integer[] = {
9223372036854775807L,
/* expect+1: ... integer 'long' ... */
0x7fffffffffffffffL,
- /* expect+1: ... integer 'unsigned long' ... */
+ /* expect+2: warning: integer constant out of range [252] */
+ /* expect+1: ... integer 'unsigned long long' ... */
9223372036854775808L,
/* expect+1: ... integer 'unsigned long' ... */
0x8000000000000000L,
- /* expect+1: ... integer 'unsigned long' ... */
+ /* expect+2: warning: integer constant out of range [252] */
+ /* expect+1: ... integer 'unsigned long long' ... */
18446744073709551615L,
/* expect+1: ... integer 'unsigned long' ... */
0xffffffffffffffffL,
/* expect+2: warning: integer constant out of range [252] */
- /* expect+1: ... integer 'unsigned long' ... */
+ /* expect+1: ... integer 'unsigned long long' ... */
18446744073709551616L,
/* expect+2: ... integer 'unsigned long' ... */
/* expect+1: warning: integer constant out of range [252] */
@@ -169,10 +173,12 @@ void *lex_integer[] = {
9223372036854775807LL,
/* expect+1: ... integer 'long long' ... */
0x7fffffffffffffffLL,
+ /* expect+2: warning: integer constant out of range [252] */
/* expect+1: ... integer 'unsigned long long' ... */
9223372036854775808LL,
/* expect+1: ... integer 'unsigned long long' ... */
0x8000000000000000LL,
+ /* expect+2: warning: integer constant out of range [252] */
/* expect+1: ... integer 'unsigned long long' ... */
18446744073709551615LL,
/* expect+1: ... integer 'unsigned long long' ... */
Index: src/tests/usr.bin/xlint/lint1/platform_lp64_trad.c
diff -u src/tests/usr.bin/xlint/lint1/platform_lp64_trad.c:1.1 src/tests/usr.bin/xlint/lint1/platform_lp64_trad.c:1.2
--- src/tests/usr.bin/xlint/lint1/platform_lp64_trad.c:1.1 Sat Jan 27 15:10:57 2024
+++ src/tests/usr.bin/xlint/lint1/platform_lp64_trad.c Sat Jan 27 20:03:14 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: platform_lp64_trad.c,v 1.1 2024/01/27 15:10:57 rillig Exp $ */
+/* $NetBSD: platform_lp64_trad.c,v 1.2 2024/01/27 20:03:14 rillig Exp $ */
# 3 "platform_lp64_trad.c"
/*
@@ -64,10 +64,12 @@ void *lex_integer[] = {
9223372036854775807L,
/* expect+1: ... integer 'long' ... */
0x7fffffffffffffffL,
+ /* expect+2: warning: integer constant out of range [252] */
/* expect+1: ... integer 'long' ... */
9223372036854775808L,
/* expect+1: ... integer 'long' ... */
0x8000000000000000L,
+ /* expect+2: warning: integer constant out of range [252] */
/* expect+1: ... integer 'long' ... */
18446744073709551615L,
/* expect+1: ... integer 'long' ... */
@@ -99,10 +101,12 @@ void *lex_integer[] = {
9223372036854775807LL,
/* expect+1: ... integer 'long long' ... */
0x7fffffffffffffffLL,
+ /* expect+2: warning: integer constant out of range [252] */
/* expect+1: ... integer 'long long' ... */
9223372036854775808LL,
/* expect+1: ... integer 'long long' ... */
0x8000000000000000LL,
+ /* expect+2: warning: integer constant out of range [252] */
/* expect+1: ... integer 'long long' ... */
18446744073709551615LL,
/* expect+1: ... integer 'long long' ... */
Index: src/usr.bin/xlint/lint1/lex.c
diff -u src/usr.bin/xlint/lint1/lex.c:1.202 src/usr.bin/xlint/lint1/lex.c:1.203
--- src/usr.bin/xlint/lint1/lex.c:1.202 Sat Jan 27 15:53:27 2024
+++ src/usr.bin/xlint/lint1/lex.c Sat Jan 27 20:03:14 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: lex.c,v 1.202 2024/01/27 15:53:27 rillig Exp $ */
+/* $NetBSD: lex.c,v 1.203 2024/01/27 20:03:14 rillig Exp $ */
/*
* Copyright (c) 1996 Christopher G. Demetriou. All Rights Reserved.
@@ -38,7 +38,7 @@
#include <sys/cdefs.h>
#if defined(__RCSID)
-__RCSID("$NetBSD: lex.c,v 1.202 2024/01/27 15:53:27 rillig Exp $");
+__RCSID("$NetBSD: lex.c,v 1.203 2024/01/27 20:03:14 rillig Exp $");
#endif
#include <ctype.h>
@@ -503,64 +503,102 @@ is_unsigned_since_c90(tspec_t typ, uint6
}
static tspec_t
-integer_constant_type(tspec_t typ, uint64_t ui, int base, bool warned)
+integer_constant_type(tspec_t t, uint64_t ui, int base, bool warned)
{
- switch (typ) {
+ switch (t) {
case INT:
- if (ui <= TARG_INT_MAX) {
- /* ok */
- } else if (ui <= TARG_UINT_MAX && base != 10) {
- typ = UINT;
- } else if (ui <= TARG_LONG_MAX) {
- typ = LONG;
- } else {
- typ = ULONG;
- if (ui > TARG_ULONG_MAX && !warned) {
+ if (ui <= TARG_INT_MAX)
+ return INT;
+ if (ui <= TARG_UINT_MAX && base != 10 && allow_c90)
+ return UINT;
+ if (ui <= TARG_LONG_MAX)
+ return LONG;
+ if (ui <= TARG_ULONG_MAX && base != 10 && allow_c90)
+ return ULONG;
+ if (ui <= TARG_ULONG_MAX && !allow_c90)
+ return LONG;
+ if (!allow_c99) {
+ if (!warned)
/* integer constant out of range */
warning(252);
- }
+ return allow_c90 ? ULONG : LONG;
}
- if ((typ == UINT || typ == ULONG) && !allow_c90)
- typ = LONG;
- break;
+ if (ui <= TARG_LLONG_MAX)
+ return LLONG;
+ if (ui <= TARG_ULLONG_MAX && base != 10)
+ return ULLONG;
+ if (!warned)
+ /* integer constant out of range */
+ warning(252);
+ return ULLONG;
case UINT:
- if (ui > TARG_UINT_MAX) {
- typ = ULONG;
- if (ui > TARG_ULONG_MAX && !warned) {
+ if (ui <= TARG_UINT_MAX)
+ return UINT;
+ if (ui <= TARG_ULONG_MAX)
+ return ULONG;
+ if (!allow_c99) {
+ if (!warned)
/* integer constant out of range */
warning(252);
- }
+ return ULONG;
}
- break;
+ if (ui <= TARG_ULLONG_MAX)
+ return ULLONG;
+ if (!warned)
+ /* integer constant out of range */
+ warning(252);
+ return ULLONG;
case LONG:
- if (ui > TARG_LONG_MAX && allow_c90) {
- typ = ULONG;
- if (ui > TARG_ULONG_MAX && !warned) {
+ if (ui <= TARG_LONG_MAX)
+ return LONG;
+ if (ui <= TARG_ULONG_MAX && base != 10)
+ return allow_c90 ? ULONG : LONG;
+ if (!allow_c99) {
+ if (!warned)
/* integer constant out of range */
warning(252);
- }
+ return allow_c90 ? ULONG : LONG;
}
- break;
- case ULONG:
- if (ui > TARG_ULONG_MAX && !warned) {
+ if (ui <= TARG_LLONG_MAX)
+ return LLONG;
+ if (ui <= TARG_ULLONG_MAX && base != 10)
+ return ULLONG;
+ if (!warned)
/* integer constant out of range */
warning(252);
+ return ULLONG;
+ case ULONG:
+ if (ui <= TARG_ULONG_MAX)
+ return ULONG;
+ if (!allow_c99) {
+ if (!warned)
+ /* integer constant out of range */
+ warning(252);
+ return ULONG;
}
- break;
+ if (ui <= TARG_ULLONG_MAX)
+ return ULLONG;
+ if (!warned)
+ /* integer constant out of range */
+ warning(252);
+ return ULLONG;
case LLONG:
- if (ui > TARG_LLONG_MAX && allow_c90)
- typ = ULLONG;
- break;
- case ULLONG:
- if (ui > TARG_ULLONG_MAX && !warned) {
+ if (ui <= TARG_LLONG_MAX)
+ return LLONG;
+ if (ui <= TARG_ULLONG_MAX && base != 10)
+ return allow_c90 ? ULLONG : LLONG;
+ if (!warned)
/* integer constant out of range */
warning(252);
- }
- break;
+ return allow_c90 ? ULLONG : LLONG;
default:
- break;
+ if (ui <= TARG_ULLONG_MAX)
+ return ULLONG;
+ if (!warned)
+ /* integer constant out of range */
+ warning(252);
+ return ULLONG;
}
- return typ;
}
int