/*      $NetBSD: lex_string.c,v 1.6 2023/03/28 14:44:34 rillig Exp $    */
# 3 "lex_string.c"

/*
* Test lexical analysis of string constants.
*
* C99 6.4.5 "String literals"
*/

/* lint1-extra-flags: -X 351 */

void sink(const char *);

void
test(void)
{
       sink("");

       sink("hello, world\n");

       sink("\0");

       sink("\0\0\0\0");

       /* expect+1: error: no hex digits follow \x [74] */
       sink("\x");             /* unfinished */

       /* expect+1: warning: dubious escape \y [79] */
       sink("\y");             /* unknown escape sequence */

       sink("first" "second");

       /* expect+1: error: cannot concatenate wide and regular string literals [292] */
       sink("plain" L"wide");
}

/* TODO: test digraphs inside string literals */
/* TODO: test trigraphs inside string literals */