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)15a01cec45Srilligfunction(_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)30a01cec45Srilligreturn_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