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