Module Name:    src
Committed By:   rillig
Date:           Mon Nov  1 19:48:51 UTC 2021

Modified Files:
        src/usr.bin/xlint: Makefile.inc
        src/usr.bin/xlint/common: lint.h
        src/usr.bin/xlint/lint1: ckgetopt.c lint1.h tree.c
        src/usr.bin/xlint/lint2: lint2.h

Log Message:
lint: enter full C90 compatibility mode

The C99 comment in tree.c:3468 has been there since 2017-03-06, without
anyone complaining that their compiler would not handle it.

Strangely, running GCC 10.3.0 in '-std=c90' mode does not complain about
declarations after statements, '-Wdeclaration-after-statement' is needed
separately.

No functional change.


To generate a diff of this commit:
cvs rdiff -u -r1.16 -r1.17 src/usr.bin/xlint/Makefile.inc
cvs rdiff -u -r1.32 -r1.33 src/usr.bin/xlint/common/lint.h
cvs rdiff -u -r1.13 -r1.14 src/usr.bin/xlint/lint1/ckgetopt.c
cvs rdiff -u -r1.129 -r1.130 src/usr.bin/xlint/lint1/lint1.h
cvs rdiff -u -r1.392 -r1.393 src/usr.bin/xlint/lint1/tree.c
cvs rdiff -u -r1.19 -r1.20 src/usr.bin/xlint/lint2/lint2.h

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/Makefile.inc
diff -u src/usr.bin/xlint/Makefile.inc:1.16 src/usr.bin/xlint/Makefile.inc:1.17
--- src/usr.bin/xlint/Makefile.inc:1.16	Mon Nov  1 19:10:07 2021
+++ src/usr.bin/xlint/Makefile.inc	Mon Nov  1 19:48:51 2021
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile.inc,v 1.16 2021/11/01 19:10:07 rillig Exp $
+#	$NetBSD: Makefile.inc,v 1.17 2021/11/01 19:48:51 rillig Exp $
 
 .include <bsd.own.mk>
 
@@ -16,7 +16,8 @@ ARCHSUBDIR=	${MACHINE_CPU}
 
 CPPFLAGS+=	-I${.CURDIR}/../arch/${ARCHSUBDIR}
 CPPFLAGS+=	-I${.CURDIR}/../common
-CWARNFLAGS+=	-Wdeclaration-after-statement	# it's a build tool
+CWARNFLAGS.gcc+=-Wdeclaration-after-statement	# see tools/README
+CWARNFLAGS.gcc+=-std=c90			# see tools/README
 
 CLEANFILES+=	*.gcno *.gcda *.gcov
 

Index: src/usr.bin/xlint/common/lint.h
diff -u src/usr.bin/xlint/common/lint.h:1.32 src/usr.bin/xlint/common/lint.h:1.33
--- src/usr.bin/xlint/common/lint.h:1.32	Sun Sep  5 18:17:15 2021
+++ src/usr.bin/xlint/common/lint.h	Mon Nov  1 19:48:51 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: lint.h,v 1.32 2021/09/05 18:17:15 rillig Exp $	*/
+/*	$NetBSD: lint.h,v 1.33 2021/11/01 19:48:51 rillig Exp $	*/
 
 /*
  * Copyright (c) 1994, 1995 Jochen Pohl
@@ -149,13 +149,21 @@ typedef struct lint2_type type_t;
 
 #include "externs.h"
 
-static inline bool
+#if __STDC_VERSION__ >= 199901L
+#define INLINE_FUNC static inline
+#elif __GNUC__
+#define INLINE_FUNC static __attribute__((__unused__))
+#else
+#define INLINE_FUNC static
+#endif
+
+INLINE_FUNC bool
 ch_isalnum(char ch) { return isalnum((unsigned char)ch) != 0; }
-static inline bool
+INLINE_FUNC bool
 ch_isdigit(char ch) { return isdigit((unsigned char)ch) != 0; }
-static inline bool
+INLINE_FUNC bool
 ch_isprint(char ch) { return isprint((unsigned char)ch) != 0; }
-static inline bool
+INLINE_FUNC bool
 ch_isspace(char ch) { return isspace((unsigned char)ch) != 0; }
-static inline bool
+INLINE_FUNC bool
 ch_isupper(char ch) { return isupper((unsigned char)ch) != 0; }

Index: src/usr.bin/xlint/lint1/ckgetopt.c
diff -u src/usr.bin/xlint/lint1/ckgetopt.c:1.13 src/usr.bin/xlint/lint1/ckgetopt.c:1.14
--- src/usr.bin/xlint/lint1/ckgetopt.c:1.13	Mon Nov  1 19:10:07 2021
+++ src/usr.bin/xlint/lint1/ckgetopt.c	Mon Nov  1 19:48:51 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: ckgetopt.c,v 1.13 2021/11/01 19:10:07 rillig Exp $ */
+/* $NetBSD: ckgetopt.c,v 1.14 2021/11/01 19:48:51 rillig Exp $ */
 
 /*-
  * Copyright (c) 2021 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: ckgetopt.c,v 1.13 2021/11/01 19:10:07 rillig Exp $");
+__RCSID("$NetBSD: ckgetopt.c,v 1.14 2021/11/01 19:48:51 rillig Exp $");
 #endif
 
 #include <stdbool.h>
@@ -133,9 +133,11 @@ check_unlisted_option(char opt)
 static void
 check_unhandled_option(void)
 {
+	const char *opt;
+
 	lint_assert(ck.options != NULL);
 
-	for (const char *opt = ck.options; *opt != '\0'; opt++) {
+	for (opt = ck.options; *opt != '\0'; opt++) {
 		if (*opt == ' ' || *opt == ':')
 			continue;
 

Index: src/usr.bin/xlint/lint1/lint1.h
diff -u src/usr.bin/xlint/lint1/lint1.h:1.129 src/usr.bin/xlint/lint1/lint1.h:1.130
--- src/usr.bin/xlint/lint1/lint1.h:1.129	Tue Sep 14 19:44:40 2021
+++ src/usr.bin/xlint/lint1/lint1.h	Mon Nov  1 19:48:51 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: lint1.h,v 1.129 2021/09/14 19:44:40 rillig Exp $ */
+/* $NetBSD: lint1.h,v 1.130 2021/11/01 19:48:51 rillig Exp $ */
 
 /*
  * Copyright (c) 1996 Christopher G. Demetriou.  All Rights Reserved.
@@ -497,7 +497,7 @@ extern err_set	msgset;
 #  include "err-msgs.h"
 
 /* ARGSUSED */
-static inline void __attribute__((format(printf, 1, 2)))
+INLINE_FUNC void __attribute__((format(printf, 1, 2)))
 check_printf(const char *fmt, ...)
 {
 }
@@ -528,7 +528,7 @@ check_printf(const char *fmt, ...)
 #  define c11ism(msgid, args...) wrap_check_printf(c11ism, msgid, ##args)
 #endif
 
-static inline bool
+INLINE_FUNC bool
 is_nonzero_val(const val_t *val)
 {
 	return is_floating(val->v_tspec)
@@ -536,7 +536,7 @@ is_nonzero_val(const val_t *val)
 	    : val->v_quad != 0;
 }
 
-static inline bool
+INLINE_FUNC bool
 constant_is_nonzero(const tnode_t *tn)
 {
 	lint_assert(tn->tn_op == CON);
@@ -544,25 +544,25 @@ constant_is_nonzero(const tnode_t *tn)
 	return is_nonzero_val(tn->tn_val);
 }
 
-static inline bool
+INLINE_FUNC bool
 is_zero(const tnode_t *tn)
 {
 	return tn != NULL && tn->tn_op == CON && !is_nonzero_val(tn->tn_val);
 }
 
-static inline bool
+INLINE_FUNC bool
 is_nonzero(const tnode_t *tn)
 {
 	return tn != NULL && tn->tn_op == CON && is_nonzero_val(tn->tn_val);
 }
 
-static inline bool
+INLINE_FUNC bool
 is_binary(const tnode_t *tn)
 {
 	return modtab[tn->tn_op].m_binary;
 }
 
-static inline uint64_t
+INLINE_FUNC uint64_t
 bit(unsigned i)
 {
 	/*
@@ -576,13 +576,13 @@ bit(unsigned i)
 	return (uint64_t)1 << i;
 }
 
-static inline bool
+INLINE_FUNC bool
 msb(int64_t q, tspec_t t)
 {
 	return (q & bit((unsigned int)size_in_bits(t) - 1)) != 0;
 }
 
-static inline uint64_t
+INLINE_FUNC uint64_t
 value_bits(unsigned bitsize)
 {
 	lint_assert(bitsize > 0);
@@ -600,7 +600,7 @@ value_bits(unsigned bitsize)
 }
 
 /* C99 6.7.8p7 */
-static inline bool
+INLINE_FUNC bool
 is_struct_or_union(tspec_t t)
 {
 	return t == STRUCT || t == UNION;

Index: src/usr.bin/xlint/lint1/tree.c
diff -u src/usr.bin/xlint/lint1/tree.c:1.392 src/usr.bin/xlint/lint1/tree.c:1.393
--- src/usr.bin/xlint/lint1/tree.c:1.392	Mon Nov  1 19:10:07 2021
+++ src/usr.bin/xlint/lint1/tree.c	Mon Nov  1 19:48:51 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: tree.c,v 1.392 2021/11/01 19:10:07 rillig Exp $	*/
+/*	$NetBSD: tree.c,v 1.393 2021/11/01 19:48:51 rillig Exp $	*/
 
 /*
  * Copyright (c) 1994, 1995 Jochen Pohl
@@ -37,7 +37,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: tree.c,v 1.392 2021/11/01 19:10:07 rillig Exp $");
+__RCSID("$NetBSD: tree.c,v 1.393 2021/11/01 19:48:51 rillig Exp $");
 #endif
 
 #include <float.h>
@@ -3465,7 +3465,7 @@ build_offsetof(const type_t *tp, const s
 		/* unacceptable operand of '%s' */
 		error(111, "offsetof");
 
-	// XXX: wrong size, no checking for sym fixme
+	/* XXX: wrong size, no checking for sym fixme */
 	offset_in_bytes = type_size_in_bits(tp) / CHAR_SIZE;
 	tn = build_integer_constant(SIZEOF_TSPEC, offset_in_bytes);
 	tn->tn_system_dependent = true;
@@ -3935,7 +3935,7 @@ expr(tnode_t *tn, bool vctx, bool tctx, 
 }
 
 static bool
-has_side_effect(const tnode_t *tn) // NOLINT(misc-no-recursion)
+has_side_effect(const tnode_t *tn) /* NOLINT(misc-no-recursion) */
 {
 	op_t op = tn->tn_op;
 

Index: src/usr.bin/xlint/lint2/lint2.h
diff -u src/usr.bin/xlint/lint2/lint2.h:1.19 src/usr.bin/xlint/lint2/lint2.h:1.20
--- src/usr.bin/xlint/lint2/lint2.h:1.19	Sun Aug 29 10:13:02 2021
+++ src/usr.bin/xlint/lint2/lint2.h	Mon Nov  1 19:48:51 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: lint2.h,v 1.19 2021/08/29 10:13:02 rillig Exp $ */
+/* $NetBSD: lint2.h,v 1.20 2021/11/01 19:48:51 rillig Exp $ */
 
 /*
  * Copyright (c) 1996 Christopher G. Demetriou.  All Rights Reserved.
@@ -186,7 +186,7 @@ typedef	struct hte {
 #include "externs2.h"
 
 /* maps type indices into pointers to type structs */
-static inline type_t *
+INLINE_FUNC type_t *
 TP(unsigned short type_id) {
 	/* force sequence point for newly parsed type_id */
 	return tlst[type_id];

Reply via email to