xref: /netbsd-src/tests/usr.bin/xlint/lint1/msg_244.c (revision e6298b924c5ba98f3a22919b56dab04a87cdbb1c)
1*e6298b92Srillig /*	$NetBSD: msg_244.c,v 1.4 2023/07/07 19:45:22 rillig Exp $	*/
2a0a15c14Srillig # 3 "msg_244.c"
3a0a15c14Srillig 
4a0a15c14Srillig // Test for message: illegal structure pointer combination [244]
5a0a15c14Srillig 
6*e6298b92Srillig /* lint1-extra-flags: -X 351 */
7*e6298b92Srillig 
836dcebf9Srillig struct a {
936dcebf9Srillig 	int member;
1036dcebf9Srillig };
1136dcebf9Srillig 
1236dcebf9Srillig struct b {
1336dcebf9Srillig 	int member;
1436dcebf9Srillig };
1536dcebf9Srillig 
1636dcebf9Srillig int
diff(struct a * a,struct b * b)1736dcebf9Srillig diff(struct a *a, struct b *b)
1836dcebf9Srillig {
1936dcebf9Srillig 	/* expect+1: error: illegal pointer subtraction [116] */
2036dcebf9Srillig 	return a - b;
2136dcebf9Srillig }
2236dcebf9Srillig 
2336dcebf9Srillig _Bool
lt(struct a * a,struct b * b)2436dcebf9Srillig lt(struct a *a, struct b *b)
2536dcebf9Srillig {
2636dcebf9Srillig 	/* expect+1: warning: incompatible structure pointers: 'pointer to struct a' '<' 'pointer to struct b' [245] */
2736dcebf9Srillig 	return a < b;
2836dcebf9Srillig }
2936dcebf9Srillig 
3036dcebf9Srillig struct a *
ret(struct b * b)3136dcebf9Srillig ret(struct b *b)
3236dcebf9Srillig {
3336dcebf9Srillig 	/* expect+1: warning: illegal structure pointer combination [244] */
3436dcebf9Srillig 	return b;
3536dcebf9Srillig }
36