Source-Changes-HG archive

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

[src/trunk]: src/usr.bin/xlint/lint1 lint: add back "due to prototype" to mes...



details:   https://anonhg.NetBSD.org/src/rev/9e197a949af5
branches:  trunk
changeset: 959193:9e197a949af5
user:      rillig <rillig%NetBSD.org@localhost>
date:      Thu Feb 04 06:54:59 2021 +0000

description:
lint: add back "due to prototype" to message 259

That message is only supposed to warn about compatibility to traditional
C, in case the function should ever be compiled without its prototype
being in effect.  All other type checks are supposed to be in another
function, as documented, but that type check misses to report a few
error-prone type combinations (long to char, long to int).

30 years after the introduction of prototypes with C90, almost all
existing code uses prototypes.  The warning has thus lost most of its
usefulness and can rather be confusing since a conversion from 'char' to
'long' is not problematic with prototypes in action, and the probability
of the code being backported to a pre-C90 compiler is diminishingly
small.

The words "due to prototype" now serve as a hint again.  The proper fix
could be to suppress this warning in C99 mode since that's far enough
from traditional C.

diffstat:

 tests/usr.bin/xlint/lint1/d_constant_conv2.exp |  2 +-
 tests/usr.bin/xlint/lint1/d_gcc_extension.exp  |  4 ++--
 tests/usr.bin/xlint/lint1/d_type_conv1.exp     |  2 +-
 tests/usr.bin/xlint/lint1/d_type_conv2.exp     |  2 +-
 tests/usr.bin/xlint/lint1/d_type_conv3.exp     |  2 +-
 tests/usr.bin/xlint/lint1/msg_259.c            |  6 +++---
 tests/usr.bin/xlint/lint1/msg_259.exp          |  2 +-
 usr.bin/xlint/lint1/err.c                      |  6 +++---
 usr.bin/xlint/lint1/tree.c                     |  8 ++++----
 9 files changed, 17 insertions(+), 17 deletions(-)

diffs (124 lines):

diff -r 8ecfbafef7a0 -r 9e197a949af5 tests/usr.bin/xlint/lint1/d_constant_conv2.exp
--- a/tests/usr.bin/xlint/lint1/d_constant_conv2.exp    Thu Feb 04 00:16:03 2021 +0000
+++ b/tests/usr.bin/xlint/lint1/d_constant_conv2.exp    Thu Feb 04 06:54:59 2021 +0000
@@ -1,1 +1,1 @@
-d_constant_conv2.c(11): warning: argument #1 is converted from 'double' to 'unsigned int' [259]
+d_constant_conv2.c(11): warning: argument #1 is converted from 'double' to 'unsigned int' due to prototype [259]
diff -r 8ecfbafef7a0 -r 9e197a949af5 tests/usr.bin/xlint/lint1/d_gcc_extension.exp
--- a/tests/usr.bin/xlint/lint1/d_gcc_extension.exp     Thu Feb 04 00:16:03 2021 +0000
+++ b/tests/usr.bin/xlint/lint1/d_gcc_extension.exp     Thu Feb 04 06:54:59 2021 +0000
@@ -1,2 +1,2 @@
-d_gcc_extension.c(11): warning: argument #1 is converted from 'double' to 'long double' [259]
-d_gcc_extension.c(11): warning: argument #1 is converted from 'double' to 'long double' [259]
+d_gcc_extension.c(11): warning: argument #1 is converted from 'double' to 'long double' due to prototype [259]
+d_gcc_extension.c(11): warning: argument #1 is converted from 'double' to 'long double' due to prototype [259]
diff -r 8ecfbafef7a0 -r 9e197a949af5 tests/usr.bin/xlint/lint1/d_type_conv1.exp
--- a/tests/usr.bin/xlint/lint1/d_type_conv1.exp        Thu Feb 04 00:16:03 2021 +0000
+++ b/tests/usr.bin/xlint/lint1/d_type_conv1.exp        Thu Feb 04 06:54:59 2021 +0000
@@ -1,1 +1,1 @@
-d_type_conv1.c(13): warning: argument #1 is converted from 'long long' to 'unsigned int' [259]
+d_type_conv1.c(13): warning: argument #1 is converted from 'long long' to 'unsigned int' due to prototype [259]
diff -r 8ecfbafef7a0 -r 9e197a949af5 tests/usr.bin/xlint/lint1/d_type_conv2.exp
--- a/tests/usr.bin/xlint/lint1/d_type_conv2.exp        Thu Feb 04 00:16:03 2021 +0000
+++ b/tests/usr.bin/xlint/lint1/d_type_conv2.exp        Thu Feb 04 06:54:59 2021 +0000
@@ -1,1 +1,1 @@
-d_type_conv2.c(13): warning: argument #1 is converted from 'double' to 'float' [259]
+d_type_conv2.c(13): warning: argument #1 is converted from 'double' to 'float' due to prototype [259]
diff -r 8ecfbafef7a0 -r 9e197a949af5 tests/usr.bin/xlint/lint1/d_type_conv3.exp
--- a/tests/usr.bin/xlint/lint1/d_type_conv3.exp        Thu Feb 04 00:16:03 2021 +0000
+++ b/tests/usr.bin/xlint/lint1/d_type_conv3.exp        Thu Feb 04 06:54:59 2021 +0000
@@ -1,2 +1,2 @@
-d_type_conv3.c(12): warning: argument #1 is converted from 'long long' to 'unsigned int' [259]
+d_type_conv3.c(12): warning: argument #1 is converted from 'long long' to 'unsigned int' due to prototype [259]
 d_type_conv3.c(12): warning: conversion of 'long long' to 'unsigned int' is out of range, arg #1 [295]
diff -r 8ecfbafef7a0 -r 9e197a949af5 tests/usr.bin/xlint/lint1/msg_259.c
--- a/tests/usr.bin/xlint/lint1/msg_259.c       Thu Feb 04 00:16:03 2021 +0000
+++ b/tests/usr.bin/xlint/lint1/msg_259.c       Thu Feb 04 06:54:59 2021 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: msg_259.c,v 1.4 2021/01/31 14:05:00 rillig Exp $       */
+/*     $NetBSD: msg_259.c,v 1.5 2021/02/04 06:55:00 rillig Exp $       */
 # 3 "msg_259.c"
 
 // Test for message: argument #%d is converted from '%s' to '%s' [259]
@@ -14,10 +14,10 @@
 {
        farg_char(c);
        farg_int(c);
-       farg_long(c);
+       farg_long(c);           /* XXX: 259 on ILP32 but not LP64 */
        farg_char(i);           /* XXX: why no warning? */
        farg_int(i);
-       farg_long(i);
+       farg_long(i);           /* XXX: 259 on ILP32 but not LP64 */
        farg_char(l);           /* XXX: why no warning? */
        farg_int(l);            /* expect: 259 */
        farg_long(l);
diff -r 8ecfbafef7a0 -r 9e197a949af5 tests/usr.bin/xlint/lint1/msg_259.exp
--- a/tests/usr.bin/xlint/lint1/msg_259.exp     Thu Feb 04 00:16:03 2021 +0000
+++ b/tests/usr.bin/xlint/lint1/msg_259.exp     Thu Feb 04 06:54:59 2021 +0000
@@ -1,1 +1,1 @@
-msg_259.c(22): warning: argument #1 is converted from 'long' to 'int' [259]
+msg_259.c(22): warning: argument #1 is converted from 'long' to 'int' due to prototype [259]
diff -r 8ecfbafef7a0 -r 9e197a949af5 usr.bin/xlint/lint1/err.c
--- a/usr.bin/xlint/lint1/err.c Thu Feb 04 00:16:03 2021 +0000
+++ b/usr.bin/xlint/lint1/err.c Thu Feb 04 06:54:59 2021 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: err.c,v 1.77 2021/01/31 14:05:00 rillig Exp $  */
+/*     $NetBSD: err.c,v 1.78 2021/02/04 06:54:59 rillig Exp $  */
 
 /*
  * Copyright (c) 1994, 1995 Jochen Pohl
@@ -37,7 +37,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: err.c,v 1.77 2021/01/31 14:05:00 rillig Exp $");
+__RCSID("$NetBSD: err.c,v 1.78 2021/02/04 06:54:59 rillig Exp $");
 #endif
 
 #include <sys/types.h>
@@ -318,7 +318,7 @@
        "unterminated comment",                                       /* 256 */
        "extra characters in lint comment",                           /* 257 */
        "unterminated string constant",                               /* 258 */
-       "argument #%d is converted from '%s' to '%s'",                /* 259 */
+       "argument #%d is converted from '%s' to '%s' due to prototype", /* 259 */
        "previous declaration of %s",                                 /* 260 */
        "previous definition of %s",                                  /* 261 */
        "\\\" inside character constants undefined in traditional C", /* 262 */
diff -r 8ecfbafef7a0 -r 9e197a949af5 usr.bin/xlint/lint1/tree.c
--- a/usr.bin/xlint/lint1/tree.c        Thu Feb 04 00:16:03 2021 +0000
+++ b/usr.bin/xlint/lint1/tree.c        Thu Feb 04 06:54:59 2021 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: tree.c,v 1.204 2021/01/31 14:05:00 rillig Exp $        */
+/*     $NetBSD: tree.c,v 1.205 2021/02/04 06:54:59 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.204 2021/01/31 14:05:00 rillig Exp $");
+__RCSID("$NetBSD: tree.c,v 1.205 2021/02/04 06:54:59 rillig Exp $");
 #endif
 
 #include <float.h>
@@ -2101,7 +2101,7 @@
            psize(nt) != psize(ot)) {
                /* representation and/or width change */
                if (!is_integer(ot) || psize(ot) > psize(INT)) {
-                       /* argument #%d is converted from '%s' to '%s' */
+                       /* argument #%d is converted from '%s' to '%s' ... */
                        warning(259,
                            arg, type_name(tn->tn_type), type_name(tp));
                }
@@ -2118,7 +2118,7 @@
                    msb(ptn->tn_val->v_quad, ot, -1) == 0) {
                        /* ok */
                } else {
-                       /* argument #%d is converted from '%s' to '%s' */
+                       /* argument #%d is converted from '%s' to '%s' ... */
                        warning(259,
                            arg, type_name(tn->tn_type), type_name(tp));
                }



Home | Main Index | Thread Index | Old Index