summaryrefslogtreecommitdiff
path: root/usr.bin/xlint/lint1/tree.c
diff options
context:
space:
mode:
authorrillig <rillig@NetBSD.org>2023-06-30 08:45:22 +0000
committerrillig <rillig@NetBSD.org>2023-06-30 08:45:22 +0000
commit4648fa324118d00e3e517238e35bad12241b3e53 (patch)
treee37ebba1d9400d437d77f8059ba3ccbb5cc99f6d /usr.bin/xlint/lint1/tree.c
parentee47fe31e7ca4755fed8e26228522a93f3e59333 (diff)
lint: add query for assigning an integer 0 to a pointer
Diffstat (limited to 'usr.bin/xlint/lint1/tree.c')
-rw-r--r--usr.bin/xlint/lint1/tree.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/usr.bin/xlint/lint1/tree.c b/usr.bin/xlint/lint1/tree.c
index 9c5689d33c3..9fc049c38e3 100644
--- a/usr.bin/xlint/lint1/tree.c
+++ b/usr.bin/xlint/lint1/tree.c
@@ -1,4 +1,4 @@
-/* $NetBSD: tree.c,v 1.532 2023/06/29 12:52:06 rillig Exp $ */
+/* $NetBSD: tree.c,v 1.533 2023/06/30 08:45:22 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.532 2023/06/29 12:52:06 rillig Exp $");
+__RCSID("$NetBSD: tree.c,v 1.533 2023/06/30 08:45:22 rillig Exp $");
#endif
#include <float.h>
@@ -2912,8 +2912,12 @@ check_assign_types_compatible(op_t op, int arg,
return ltp->t_sou == rtp->t_sou;
/* a null pointer may be assigned to any pointer */
- if (lt == PTR && is_null_pointer(rn))
+ if (lt == PTR && is_null_pointer(rn)) {
+ if (is_integer(rn->tn_type->t_tspec))
+ /* implicit conversion from integer 0 to pointer ... */
+ query_message(15, type_name(ltp));
return true;
+ }
check_assign_void_pointer(op, arg, lt, lst, rt, rst);