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