xref: /netbsd-src/tests/usr.bin/xlint/lint1/msg_245.c (revision b2baa50111d645353fa30b4deab0f79d93650c8c)
1*b2baa501Srillig /*	$NetBSD: msg_245.c,v 1.6 2023/03/28 14:44:35 rillig Exp $	*/
2a0a15c14Srillig # 3 "msg_245.c"
3a0a15c14Srillig 
42317ba24Srillig // Test for message: incompatible structure pointers: '%s' '%s' '%s' [245]
5a0a15c14Srillig 
6*b2baa501Srillig /* lint1-extra-flags: -X 351 */
7*b2baa501Srillig 
83c4f693cSrillig typedef struct tag_and_typedef_tag {
93c4f693cSrillig 	int member;
103c4f693cSrillig } tag_and_typedef_typedef;
113c4f693cSrillig 
123c4f693cSrillig struct only_tag {
133c4f693cSrillig 	int member;
143c4f693cSrillig };
153c4f693cSrillig 
163c4f693cSrillig typedef struct {
173c4f693cSrillig 	int member;
183c4f693cSrillig } only_typedef;
193c4f693cSrillig 
203c4f693cSrillig struct {
213c4f693cSrillig 	int member;
223c4f693cSrillig } unnamed;
233c4f693cSrillig 
243c4f693cSrillig void sink_bool(_Bool);
253c4f693cSrillig 
263c4f693cSrillig void
example(tag_and_typedef_typedef both,only_typedef only_typedef,struct only_tag only_tag)273c4f693cSrillig example(tag_and_typedef_typedef both,
283c4f693cSrillig 	only_typedef only_typedef,
293c4f693cSrillig 	struct only_tag only_tag)
303c4f693cSrillig {
3136dcebf9Srillig 	/* expect+1: warning: incompatible structure pointers: 'pointer to struct tag_and_typedef_tag' '==' 'pointer to struct only_tag' [245] */
3236dcebf9Srillig 	sink_bool(&both == &only_tag);
3336dcebf9Srillig 	/* expect+1: warning: incompatible structure pointers: 'pointer to struct tag_and_typedef_tag' '==' 'pointer to struct typedef only_typedef' [245] */
3436dcebf9Srillig 	sink_bool(&both == &only_typedef);
3536dcebf9Srillig 	/* expect+1: warning: incompatible structure pointers: 'pointer to struct tag_and_typedef_tag' '==' 'pointer to struct <unnamed>' [245] */
3636dcebf9Srillig 	sink_bool(&both == &unnamed);
373c4f693cSrillig }
38