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