Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/usr.bin/xlint lint: enter full C90 compatibility mode



details:   https://anonhg.NetBSD.org/src/rev/2f20e2ed2f44
branches:  trunk
changeset: 1024742:2f20e2ed2f44
user:      rillig <rillig%NetBSD.org@localhost>
date:      Mon Nov 01 19:48:51 2021 +0000

description:
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.

diffstat:

 usr.bin/xlint/Makefile.inc     |   5 +++--
 usr.bin/xlint/common/lint.h    |  20 ++++++++++++++------
 usr.bin/xlint/lint1/ckgetopt.c |   8 +++++---
 usr.bin/xlint/lint1/lint1.h    |  22 +++++++++++-----------
 usr.bin/xlint/lint1/tree.c     |   8 ++++----
 usr.bin/xlint/lint2/lint2.h    |   4 ++--
 6 files changed, 39 insertions(+), 28 deletions(-)

diffs (231 lines):

diff -r 882dff03e83d -r 2f20e2ed2f44 usr.bin/xlint/Makefile.inc
--- a/usr.bin/xlint/Makefile.inc        Mon Nov 01 19:37:32 2021 +0000
+++ b/usr.bin/xlint/Makefile.inc        Mon Nov 01 19:48:51 2021 +0000
@@ -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 @@
 
 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
 
diff -r 882dff03e83d -r 2f20e2ed2f44 usr.bin/xlint/common/lint.h
--- a/usr.bin/xlint/common/lint.h       Mon Nov 01 19:37:32 2021 +0000
+++ b/usr.bin/xlint/common/lint.h       Mon Nov 01 19:48:51 2021 +0000
@@ -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 @@
 
 #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; }
diff -r 882dff03e83d -r 2f20e2ed2f44 usr.bin/xlint/lint1/ckgetopt.c
--- a/usr.bin/xlint/lint1/ckgetopt.c    Mon Nov 01 19:37:32 2021 +0000
+++ b/usr.bin/xlint/lint1/ckgetopt.c    Mon Nov 01 19:48:51 2021 +0000
@@ -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 @@
 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;
 
diff -r 882dff03e83d -r 2f20e2ed2f44 usr.bin/xlint/lint1/lint1.h
--- a/usr.bin/xlint/lint1/lint1.h       Mon Nov 01 19:37:32 2021 +0000
+++ b/usr.bin/xlint/lint1/lint1.h       Mon Nov 01 19:48:51 2021 +0000
@@ -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 @@
 #  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 @@
 #  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 @@
            : 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 @@
        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 @@
        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 @@
 }
 
 /* C99 6.7.8p7 */
-static inline bool
+INLINE_FUNC bool
 is_struct_or_union(tspec_t t)
 {
        return t == STRUCT || t == UNION;
diff -r 882dff03e83d -r 2f20e2ed2f44 usr.bin/xlint/lint1/tree.c
--- a/usr.bin/xlint/lint1/tree.c        Mon Nov 01 19:37:32 2021 +0000
+++ b/usr.bin/xlint/lint1/tree.c        Mon Nov 01 19:48:51 2021 +0000
@@ -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 @@
                /* 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 @@
 }
 
 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;
 
diff -r 882dff03e83d -r 2f20e2ed2f44 usr.bin/xlint/lint2/lint2.h
--- a/usr.bin/xlint/lint2/lint2.h       Mon Nov 01 19:37:32 2021 +0000
+++ b/usr.bin/xlint/lint2/lint2.h       Mon Nov 01 19:48:51 2021 +0000
@@ -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 @@
 #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];



Home | Main Index | Thread Index | Old Index