xref: /netbsd-src/tests/usr.bin/xlint/lint1/msg_138.c (revision d2c16d5796af7d64c26094d6e83f5c79714a35d6)
1 /*	$NetBSD: msg_138.c,v 1.7 2024/01/28 08:17:27 rillig Exp $	*/
2 # 3 "msg_138.c"
3 
4 // Test for message: unknown operand size, op '%s' [138]
5 
6 /* lint1-extra-flags: -z -X 351 */
7 
8 struct incomplete;
9 
10 /*
11  * This code doesn't make sense at all, at least not in C99.
12  */
13 /* ARGSUSED */
14 void
function(_Bool cond,struct incomplete * i1,struct incomplete * i2)15 function(_Bool cond, struct incomplete *i1, struct incomplete *i2)
16 {
17 	/* expect+2: error: cannot initialize 'incomplete struct incomplete' from 'pointer to incomplete struct incomplete' [185] */
18 	/* expect+1: error: 'local' has incomplete type 'incomplete struct incomplete' [31] */
19 	struct incomplete local = i1;
20 
21 	/* expect+1: error: unknown operand size, op '=' [138] */
22 	*i1 = *i2;
23 
24 	/* expect+1: error: unknown operand size, op ':' [138] */
25 	return cond ? *i1 : *i2;
26 }
27 
28 /* ARGSUSED */
29 struct incomplete
return_incomplete(struct incomplete * ptr)30 return_incomplete(struct incomplete *ptr)
31 /* expect+1: error: cannot return incomplete type [67] */
32 {
33 	/* expect+1: error: cannot return incomplete type [212] */
34 	return *ptr;
35 }
36