root/tests/usr.bin/xlint/lint1/lex_string.c
/*      $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 */