Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/tests/usr.bin/xlint/lint1 tests/lint: add more examples for ...
details: https://anonhg.NetBSD.org/src/rev/6c5f3ad62125
branches: trunk
changeset: 981633:6c5f3ad62125
user: rillig <rillig%NetBSD.org@localhost>
date: Thu Mar 18 20:20:55 2021 +0000
description:
tests/lint: add more examples for initialization
diffstat:
tests/usr.bin/xlint/lint1/d_c99_init.c | 80 ++++++++++++++++++++++++++++++-
tests/usr.bin/xlint/lint1/d_c99_init.exp | 1 +
2 files changed, 78 insertions(+), 3 deletions(-)
diffs (103 lines):
diff -r 0bf267a79378 -r 6c5f3ad62125 tests/usr.bin/xlint/lint1/d_c99_init.c
--- a/tests/usr.bin/xlint/lint1/d_c99_init.c Thu Mar 18 20:02:18 2021 +0000
+++ b/tests/usr.bin/xlint/lint1/d_c99_init.c Thu Mar 18 20:20:55 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: d_c99_init.c,v 1.6 2021/02/21 14:19:27 rillig Exp $ */
+/* $NetBSD: d_c99_init.c,v 1.7 2021/03/18 20:20:55 rillig Exp $ */
# 3 "d_c99_init.c"
/*
@@ -47,9 +47,83 @@
initialization_with_redundant_braces(any arg)
{
any local = { arg }; /* expect: 185 */
- // FIXME: message 185 needs to be reworded to "cannot initialize '%s' from '%s'".
+ // TODO: message 185 needs to be reworded to "cannot initialize '%s' from '%s'".
use(&arg);
}
+// Some of the following examples are mentioned in init.c.
+
+int number = 12345;
+
+int number_with_braces_and_comma = {
+ 12345,
+};
+
+int array_with_fixed_size[3] = {
+ 111,
+ 222,
+ 333,
+ 444, /* expect: too many array initializers */
+};
+
// See initstack_push, 'extending array of unknown size'.
-const int primes[] = { 2, 3, 5, 7, 9 };
+int array_of_unknown_size[] = {
+ 111,
+ 222,
+ 333,
+};
+
+int array_flat[2][2] = {
+ 11,
+ 12,
+ 21,
+ 22
+};
+
+int array_nested[2][2] = {
+ {
+ 11,
+ 12
+ },
+ {
+ 21,
+ 22
+ }
+};
+
+int array_with_designators[] = {
+ ['1'] = 111,
+ ['5'] = 555,
+ ['9'] = 999
+};
+
+int array_with_some_designators[] = {
+ ['1'] = 111,
+ 222,
+ ['9'] = 999
+};
+
+struct point {
+ int x;
+ int y;
+};
+
+struct point point = {
+ 3,
+ 4
+};
+
+struct point point_with_designators = {
+ .y = 4,
+ .x = 3,
+};
+
+struct point point_with_mixed_designators = {
+ .x = 3,
+ 4,
+ // FIXME: assertion failure '== ARRAY'
+ // 5,
+ .x = 3,
+};
+
+// See d_struct_init_nested.c for a more complicated example.
diff -r 0bf267a79378 -r 6c5f3ad62125 tests/usr.bin/xlint/lint1/d_c99_init.exp
--- a/tests/usr.bin/xlint/lint1/d_c99_init.exp Thu Mar 18 20:02:18 2021 +0000
+++ b/tests/usr.bin/xlint/lint1/d_c99_init.exp Thu Mar 18 20:20:55 2021 +0000
@@ -1,3 +1,4 @@
d_c99_init.c(22): invalid initializer type int [176]
d_c99_init.c(23): too many initializers [174]
d_c99_init.c(49): initialization type mismatch (pointer to const void) and (struct any) [185]
+d_c99_init.c(66): too many array initializers, expected 3 [173]
Home |
Main Index |
Thread Index |
Old Index