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);
+}

Reply via email to