Module Name:    src
Committed By:   rillig
Date:           Wed Jun 30 13:50:15 UTC 2021

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

Log Message:
tests/lint: extend and explain test for implicit function declaration


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/tests/usr.bin/xlint/lint1/msg_215.c \
    src/tests/usr.bin/xlint/lint1/msg_215.exp

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/msg_215.c
diff -u src/tests/usr.bin/xlint/lint1/msg_215.c:1.3 src/tests/usr.bin/xlint/lint1/msg_215.c:1.4
--- src/tests/usr.bin/xlint/lint1/msg_215.c:1.3	Mon Jun 28 11:27:00 2021
+++ src/tests/usr.bin/xlint/lint1/msg_215.c	Wed Jun 30 13:50:15 2021
@@ -1,10 +1,27 @@
-/*	$NetBSD: msg_215.c,v 1.3 2021/06/28 11:27:00 rillig Exp $	*/
+/*	$NetBSD: msg_215.c,v 1.4 2021/06/30 13:50:15 rillig Exp $	*/
 # 3 "msg_215.c"
 
 // Test for message: function implicitly declared to return int [215]
 
+/*
+ * In traditional C and C90, it was possible to implicitly declare a function
+ * by just calling it, without defining a prototype first.  Such a function
+ * would then be defined as taking unspecified parameters and returning int.
+ */
+
+struct str {
+	int dummy;
+};
+
+/* ARGSUSED */
 void
-caller(void)
+test(struct str str)
 {
-	callee(12345);		/* expect: [215] */
+	/* expect+1: error: function implicitly declared to return int [215] */
+	name();
+
+	/* FIXME: "type 'int'" sounds wrong. */
+	/* expect+2: error: type 'int' does not have member 'member' [101] */
+	/* expect+1: error: illegal function (type int) [149] */
+	str.member();
 }
Index: src/tests/usr.bin/xlint/lint1/msg_215.exp
diff -u src/tests/usr.bin/xlint/lint1/msg_215.exp:1.3 src/tests/usr.bin/xlint/lint1/msg_215.exp:1.4
--- src/tests/usr.bin/xlint/lint1/msg_215.exp:1.3	Mon Jun 28 11:27:00 2021
+++ src/tests/usr.bin/xlint/lint1/msg_215.exp	Wed Jun 30 13:50:15 2021
@@ -1 +1,3 @@
-msg_215.c(9): error: function implicitly declared to return int [215]
+msg_215.c(21): error: function implicitly declared to return int [215]
+msg_215.c(26): error: type 'int' does not have member 'member' [101]
+msg_215.c(26): error: illegal function (type int) [149]

Reply via email to