Module Name: src
Committed By: rillig
Date: Sat Mar 20 08:59:46 UTC 2021
Modified Files:
src/tests/usr.bin/xlint/lint1: d_c99_init.c
Log Message:
tests/lint: add more tests for initialization, based on C99 6.7.8
To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/tests/usr.bin/xlint/lint1/d_c99_init.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/d_c99_init.c
diff -u src/tests/usr.bin/xlint/lint1/d_c99_init.c:1.11 src/tests/usr.bin/xlint/lint1/d_c99_init.c:1.12
--- src/tests/usr.bin/xlint/lint1/d_c99_init.c:1.11 Sat Mar 20 08:54:27 2021
+++ src/tests/usr.bin/xlint/lint1/d_c99_init.c Sat Mar 20 08:59:46 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: d_c99_init.c,v 1.11 2021/03/20 08:54:27 rillig Exp $ */
+/* $NetBSD: d_c99_init.c,v 1.12 2021/03/20 08:59:46 rillig Exp $ */
# 3 "d_c99_init.c"
/*
@@ -144,4 +144,37 @@ struct point scalar_with_several_braces
{{{{4}}}},
};
+struct rectangle {
+ struct point top_left;
+ struct point bottom_right;
+};
+
+/* C99 6.7.8p18 */
+struct rectangle screen = {
+ .bottom_right = {
+ 1920,
+ 1080,
+ }
+};
+
+/*
+ * C99 6.7.8p22 says: At the _end_ of its initializer list, the array no
+ * longer has incomplete type.
+ */
+struct point points[] = {
+ {
+ /*
+ * At this point, the size of the object 'points' is not known
+ * yet since its type is still incomplete. Lint could warn
+ * about this, but GCC and Clang already do.
+ *
+ * This test case demonstrates that in
+ * extend_if_array_of_unknown_size, setcomplete is called too
+ * early.
+ */
+ sizeof points,
+ 4
+ }
+};
+
// See d_struct_init_nested.c for a more complicated example.