queries_schar.c revision 1.2
1/*	$NetBSD: queries_schar.c,v 1.2 2024/01/28 08:54:27 rillig Exp $	*/
2# 3 "queries_schar.c"
3
4/*
5 * Tests for queries that are specific to platforms where 'char' has the same
6 * representation as 'signed char'.
7 *
8 * See also:
9 *	queries.c		platform-independent tests
10 *	queries_uchar.c		for platforms where 'char' is unsigned
11 */
12
13/* lint1-only-if: schar */
14/* lint1-extra-flags: -q 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 -X 351 */
15
16int
17Q14(char c)
18{
19	/* expect+2: comparison '==' of 'char' with plain integer 92 [Q14] */
20	/* expect+1: comparison '==' of 'char' with plain integer 0 [Q14] */
21	if (c == 'c' || c == L'w' || c == 92 || c == 0)
22		return 1;
23	return 5;
24}
25
26/*
27 * Variables with automatic storage duration often have so small scope that
28 * adding the 'const' qualifier hurts readability more than it helps.
29 */
30int
31/* expect+1: const automatic variable 'const_arg' [Q18] */
32Q18(const int const_arg, int arg)
33{
34	/* expect+1: const automatic variable 'Q18_scalar' [Q18] */
35	const char Q18_scalar = '1';
36	const char Q18_array[] = { '1', '2', '3' };
37	const char Q18_string[] = "123";
38	const char *Q18_string_pointer = "123";
39
40	return const_arg + arg
41	    + Q18_scalar + Q18_array[0] + Q18_string[0] + Q18_string_pointer[0];
42}
43
44/*
45 * Since queries do not affect the exit status, force a warning to make this
46 * test conform to the general expectation that a test that produces output
47 * exits non-successfully.
48 */
49/* expect+1: warning: static variable 'unused' unused [226] */
50static int unused;
51