1*6f23d4dfSrillig /* $NetBSD: lex_wide_char.c,v 1.5 2024/01/19 19:23:34 rillig Exp $ */ 23ce615ebSrillig # 3 "lex_wide_char.c" 33ce615ebSrillig 43ce615ebSrillig /* 53ce615ebSrillig * Tests for lexical analysis of character constants. 63ce615ebSrillig * 73ce615ebSrillig * C99 6.4.4.4 "Character constants" 83ce615ebSrillig */ 93ce615ebSrillig 10b2baa501Srillig /* lint1-extra-flags: -X 351 */ 11b2baa501Srillig 123ce615ebSrillig void sink(int); 133ce615ebSrillig 143ce615ebSrillig void test(void)153ce615ebSrilligtest(void) 163ce615ebSrillig { 17c83f7defSrillig /* expect+1: error: empty character constant [73] */ 183ce615ebSrillig sink(L''); 193ce615ebSrillig 203ce615ebSrillig sink(L'a'); 213ce615ebSrillig 223ce615ebSrillig sink(L'\0'); 233ce615ebSrillig 243ce615ebSrillig /* UTF-8 */ 25c83f7defSrillig /* expect+1: error: too many characters in character constant [71] */ 263ce615ebSrillig sink(L'ä'); 273ce615ebSrillig 283ce615ebSrillig /* GCC extension */ 293ce615ebSrillig sink(L'\e'); 303ce615ebSrillig 31*6f23d4dfSrillig /* expect+1: warning: dubious escape \y [79] */ 32*6f23d4dfSrillig sink(L'\y'); 33*6f23d4dfSrillig 343ce615ebSrillig /* since C99 */ 353ce615ebSrillig sink(L'\x12'); 363ce615ebSrillig 373ce615ebSrillig /* octal */ 383ce615ebSrillig sink(L'\177'); 393ce615ebSrillig 403ce615ebSrillig /* newline */ 413ce615ebSrillig sink(L'\n'); 423ce615ebSrillig 43c83f7defSrillig /* expect+1: error: empty character constant [73] */ 443ce615ebSrillig sink(L''); 453ce615ebSrillig } 46