summaryrefslogtreecommitdiff
path: root/tests/usr.bin/xlint/lint1/msg_138.c
blob: d57e72937b03945dd79ad6327077a5932feb0d1a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/*	$NetBSD: msg_138.c,v 1.6 2023/07/07 19:45:22 rillig Exp $	*/
# 3 "msg_138.c"

// Test for message: unknown operand size, op '%s' [138]

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

struct incomplete;

/*
 * This code doesn't make sense at all, at least not in C99.
 */
/* ARGSUSED */
void
function(_Bool cond, struct incomplete *i1, struct incomplete *i2)
{
	/* expect+2: error: 'local' has incomplete type 'incomplete struct incomplete' [31] */
	/* expect+1: error: cannot initialize 'incomplete struct incomplete' from 'pointer to incomplete struct incomplete' [185] */
	struct incomplete local = i1;

	/* expect+1: error: unknown operand size, op '=' [138] */
	*i1 = *i2;

	/* expect+1: error: unknown operand size, op ':' [138] */
	return cond ? *i1 : *i2;
}

/* ARGSUSED */
struct incomplete
return_incomplete(struct incomplete *ptr)
/* expect+1: error: cannot return incomplete type [67] */
{
	/* expect+1: error: cannot return incomplete type [212] */
	return *ptr;
}