msg_130.c revision 1.6
1/*	$NetBSD: msg_130.c,v 1.6 2021/03/05 16:31:49 rillig Exp $	*/
2# 3 "msg_130.c"
3
4// Test for message: enum type mismatch: '%s' '%s' '%s' [130]
5
6enum color {
7	RED	= 1 << 0,
8	GREEN	= 1 << 1,
9	BLUE	= 1 << 2
10};
11
12enum size {
13	SMALL,
14	MEDIUM,
15	LARGE
16};
17
18enum daytime {
19	NIGHT, MORNING, NOON, EVENING
20};
21
22void sink(_Bool);
23
24void
25example(_Bool cond, enum color c, enum size s)
26{
27	sink(cond ? GREEN : MORNING);	/* expect: 130 */
28
29	sink(c != s);			/* expect: 130 */
30	sink(c == s);			/* expect: 130 */
31	sink((c & MEDIUM) != 0);	/* might be useful to warn about */
32	sink((c | MEDIUM) != 0);	/* might be useful to warn about */
33
34	c |= MEDIUM;			/* might be useful to warn about */
35	c &= MEDIUM;			/* might be useful to warn about */
36
37	/* The cast to unsigned is required by GCC at WARNS=6. */
38	c &= ~(unsigned)MEDIUM;		/* might be useful to warn about */
39}
40
41void
42switch_example(enum color c)
43{
44	switch (c) {
45	case EVENING:			/* TODO: 130 */
46	case LARGE:			/* TODO: 130 */
47		sink(1 == 1);
48		break;
49	default:
50		break;
51	}
52}
53