Module Name: src
Committed By: rillig
Date: Wed Jul 12 18:13:40 UTC 2023
Modified Files:
src/distrib/sets/lists/tests: mi
Added Files:
src/tests/usr.bin/xlint/lint1: c11.c
Log Message:
tests/lint: add test for _Noreturn from C11
To generate a diff of this commit:
cvs rdiff -u -r1.1275 -r1.1276 src/distrib/sets/lists/tests/mi
cvs rdiff -u -r0 -r1.1 src/tests/usr.bin/xlint/lint1/c11.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/distrib/sets/lists/tests/mi
diff -u src/distrib/sets/lists/tests/mi:1.1275 src/distrib/sets/lists/tests/mi:1.1276
--- src/distrib/sets/lists/tests/mi:1.1275 Fri Jul 7 00:20:39 2023
+++ src/distrib/sets/lists/tests/mi Wed Jul 12 18:13:39 2023
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.1275 2023/07/07 00:20:39 rillig Exp $
+# $NetBSD: mi,v 1.1276 2023/07/12 18:13:39 rillig Exp $
#
# Note: don't delete entries from here - mark them as "obsolete" instead.
#
@@ -6506,6 +6506,7 @@
./usr/tests/usr.bin/xlint/lint1 tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/xlint/lint1/Atffile tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/xlint/lint1/Kyuafile tests-usr.bin-tests compattestfile,atf,kyua
+./usr/tests/usr.bin/xlint/lint1/c11.c tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/xlint/lint1/c11_atomic.c tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/xlint/lint1/c11_generic_expression.c tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/xlint/lint1/c11_generic_expression.exp tests-obsolete obsolete,atf
Added files:
Index: src/tests/usr.bin/xlint/lint1/c11.c
diff -u /dev/null src/tests/usr.bin/xlint/lint1/c11.c:1.1
--- /dev/null Wed Jul 12 18:13:40 2023
+++ src/tests/usr.bin/xlint/lint1/c11.c Wed Jul 12 18:13:39 2023
@@ -0,0 +1,46 @@
+/* $NetBSD: c11.c,v 1.1 2023/07/12 18:13:39 rillig Exp $ */
+# 3 "c11.c"
+
+/*
+ * Test the language level C11, which adds _Generic expressions, _Noreturn
+ * functions, anonymous struct/union members, and several more.
+ */
+
+/* lint1-flags: -Ac11 -w -X 236 -X 351 */
+
+_Noreturn void exit(int);
+void _Noreturn exit(int);
+
+/* XXX: Syntactically invalid, yet lint accepts it. */
+void _Noreturn exit(int) _Noreturn;
+
+_Noreturn void
+noreturn_before_type(void)
+{
+ exit(0);
+}
+
+void _Noreturn
+noreturn_after_type(void)
+{
+ exit(0);
+}
+
+static _Noreturn void
+noreturn_after_storage_class(void)
+{
+ exit(0);
+}
+
+_Noreturn static void
+noreturn_before_storage_class(void)
+{
+ exit(0);
+}
+
+/* C11 6.7.4p5: A function specifier may appear more than once. */
+_Noreturn _Noreturn _Noreturn void
+three_times(void)
+{
+ exit(0);
+}