Module Name:    src
Committed By:   rillig
Date:           Tue Jan  3 22:02:20 UTC 2023

Modified Files:
        src/tests/usr.bin/xlint/lint1: op_colon.c

Log Message:
tests/lint: demonstrate wrong type for '?:' expressions


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/tests/usr.bin/xlint/lint1/op_colon.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/op_colon.c
diff -u src/tests/usr.bin/xlint/lint1/op_colon.c:1.3 src/tests/usr.bin/xlint/lint1/op_colon.c:1.4
--- src/tests/usr.bin/xlint/lint1/op_colon.c:1.3	Fri Jun 17 18:54:53 2022
+++ src/tests/usr.bin/xlint/lint1/op_colon.c	Tue Jan  3 22:02:20 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: op_colon.c,v 1.3 2022/06/17 18:54:53 rillig Exp $	*/
+/*	$NetBSD: op_colon.c,v 1.4 2023/01/03 22:02:20 rillig Exp $	*/
 # 3 "op_colon.c"
 
 /*
@@ -7,12 +7,18 @@
 
 /* lint1-extra-flags: -p */
 
-void sink(void *);
+struct unknown {
+	int member;
+};
+
+void
+sink(struct unknown *);
 
 void
 test_merge_qualifiers(_Bool cond, int *p, const int *c, volatile int *v,
 		      const volatile int *cv)
 {
+	/* expect+1: ... 'pointer to int' ... */
 	sink(cond ? p : p);
 	/* expect+1: ... 'pointer to const int' ... */
 	sink(cond ? p : c);
@@ -48,3 +54,51 @@ test_merge_qualifiers(_Bool cond, int *p
 	/* expect+1: ... 'pointer to const volatile int' ... */
 	sink(cond ? cv : cv);
 }
+
+void
+c99_6_5_15_p8(
+    _Bool cond,
+    const void *c_vp,
+    void *vp,
+    const int *c_ip,
+    volatile int *v_ip,
+    int *ip,
+    const char *c_cp
+)
+{
+	/* FIXME: expect+2: ... 'pointer to const void' ... */
+	/* FIXME: expect+2: ... 'pointer to const void' ... */
+	/* expect+2: ... 'pointer to const int' ... */
+	/* expect+2: ... 'pointer to const int' ... */
+	sink(cond ? c_vp : c_ip);
+	sink(cond ? c_ip : c_vp);
+
+	/* expect+2: ... 'pointer to volatile int' ... */
+	/* expect+2: ... 'pointer to volatile int' ... */
+	sink(cond ? v_ip : 0);
+	sink(cond ? 0 : v_ip);
+
+	/* expect+2: ... 'pointer to const volatile int' ... */
+	/* expect+2: ... 'pointer to const volatile int' ... */
+	sink(cond ? c_ip : v_ip);
+	sink(cond ? v_ip : c_ip);
+
+	/* FIXME: expect+2: ... 'pointer to const void' ... */
+	/* FIXME: expect+2: ... 'pointer to const void' ... */
+	/* expect+2: ... 'pointer to const char' ... */
+	/* expect+2: ... 'pointer to const char' ... */
+	sink(cond ? vp : c_cp);
+	sink(cond ? c_cp : vp);
+
+	/* expect+2: ... 'pointer to const int' ... */
+	/* expect+2: ... 'pointer to const int' ... */
+	sink(cond ? ip : c_ip);
+	sink(cond ? c_ip : ip);
+
+	/* FIXME: expect+2: ... 'pointer to void' ... */
+	/* FIXME: expect+2: ... 'pointer to void' ... */
+	/* expect+2: ... 'pointer to int' ... */
+	/* expect+2: ... 'pointer to int' ... */
+	sink(cond ? vp : ip);
+	sink(cond ? ip : vp);
+}

Reply via email to