Module Name: src Committed By: rillig Date: Fri Dec 17 01:00:50 UTC 2021
Modified Files: src/tests/usr.bin/xlint/lint1: init.c init.exp Log Message: lint: demonstrate wrong error message in initialization History of the new test fragment: libexec/2021.09.14.19.44.40-plain/lint1 | (14): error: cannot initialize 'struct typedef histogram_entry' | from 'pointer to char' [185] | exit status 1 libexec/2021.04.01.14.20.30-plain/lint1 libexec/2021.03.30.20.23.30-plain/lint1 | (14): error: cannot initialize 'struct typedef histogram_entry' | from 'pointer to char' [185] | (14): error: cannot initialize 'struct typedef histogram_entry' | from 'int' [185] | (15): error: cannot initialize 'struct typedef histogram_entry' | from 'pointer to char' [185] | (15): error: cannot initialize 'struct typedef histogram_entry' | from 'int' [185] | exit status 1 libexec/2021.03.30.14.25.28-plain/lint1 libexec/2021.03.29.21.34.17-plain/lint1 | (15): error: too many struct/union initializers [172] | exit status 1 libexec/2021.03.28.15.36.37-plain/lint1 libexec/2021.03.28.14.13.18-plain/lint1 | (18): error: too many struct/union initializers [172] | exit status 1 libexec/2021.03.21.20.44.59-plain/lint1 libexec/2021.03.21.20.30.19-plain/lint1 | (18): too many struct/union initializers [172] | exit status 1 libexec/2014.11.20.20.49.06-plain/lint1 libexec/2014.11.20.20.48.33-plain/lint1 | exit status 0 To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/tests/usr.bin/xlint/lint1/init.c \ src/tests/usr.bin/xlint/lint1/init.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/init.c diff -u src/tests/usr.bin/xlint/lint1/init.c:1.1 src/tests/usr.bin/xlint/lint1/init.c:1.2 --- src/tests/usr.bin/xlint/lint1/init.c:1.1 Sat Jul 10 09:24:27 2021 +++ src/tests/usr.bin/xlint/lint1/init.c Fri Dec 17 01:00:50 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: init.c,v 1.1 2021/07/10 09:24:27 rillig Exp $ */ +/* $NetBSD: init.c,v 1.2 2021/12/17 01:00:50 rillig Exp $ */ # 3 "init.c" /* @@ -22,3 +22,21 @@ double array_with_empty_initializer[3] = struct { int member; } empty_struct_initializer = {}; + + +typedef struct { + const char *key; + int n; +} histogram_entry; + +/* + * The C standards allow omitting braces around the structural levels. For + * human readers, it is usually clearer to include them. + * + * Seen in external/ibm-public/postfix/dist/src/util/dict.c(624). + */ +const histogram_entry hgr[] = { + /* expect+1: error: cannot initialize 'struct typedef histogram_entry' from 'pointer to char' [185] */ + "odd", 5, + "even", 5, +}; Index: src/tests/usr.bin/xlint/lint1/init.exp diff -u src/tests/usr.bin/xlint/lint1/init.exp:1.1 src/tests/usr.bin/xlint/lint1/init.exp:1.2 --- src/tests/usr.bin/xlint/lint1/init.exp:1.1 Sat Jul 10 09:24:27 2021 +++ src/tests/usr.bin/xlint/lint1/init.exp Fri Dec 17 01:00:50 2021 @@ -1 +1,2 @@ init.c(16): error: empty array declaration: empty_array_with_initializer [190] +init.c(40): error: cannot initialize 'struct typedef histogram_entry' from 'pointer to char' [185]