msg_124.c revision 1.16 1 1.16 rillig /* $NetBSD: msg_124.c,v 1.16 2025/04/12 15:49:50 rillig Exp $ */
2 1.1 rillig # 3 "msg_124.c"
3 1.1 rillig
4 1.16 rillig // Test for message: invalid combination of '%s' and '%s', op '%s' [124]
5 1.1 rillig
6 1.14 rillig /* lint1-extra-flags: -s -X 191,351 */
7 1.4 rillig
8 1.2 rillig typedef void(*signal_handler)(int);
9 1.2 rillig
10 1.2 rillig typedef signal_handler(*sys_signal)(signal_handler);
11 1.2 rillig
12 1.2 rillig typedef int(*printflike)(const char *, ...)
13 1.2 rillig __attribute__((format(printf, 1, 2)));
14 1.2 rillig
15 1.2 rillig void
16 1.2 rillig example(int *ptr)
17 1.2 rillig {
18 1.16 rillig /* expect+1: warning: invalid combination of 'pointer to function(int) returning void' and 'pointer to int', op 'init' [124] */
19 1.12 rillig signal_handler handler = ptr;
20 1.16 rillig /* expect+1: warning: invalid combination of 'pointer to function(pointer to function(int) returning void) returning pointer to function(int) returning void' and 'pointer to int', op 'init' [124] */
21 1.12 rillig sys_signal signal = ptr;
22 1.16 rillig /* expect+1: warning: invalid combination of 'pointer to function(pointer to const char, ...) returning int' and 'pointer to int', op 'init' [124] */
23 1.12 rillig printflike printf = ptr;
24 1.3 rillig }
25 1.3 rillig
26 1.3 rillig void ok(_Bool);
27 1.3 rillig void not_ok(_Bool);
28 1.3 rillig
29 1.3 rillig void
30 1.3 rillig compare_pointers(const void *vp, const char *cp, const int *ip,
31 1.3 rillig signal_handler fp)
32 1.3 rillig {
33 1.3 rillig ok(vp == cp);
34 1.3 rillig ok(vp == ip);
35 1.15 rillig /* expect+1: warning: C90 or later forbid comparison of 'void *' with function pointer [274] */
36 1.12 rillig ok(vp == fp);
37 1.16 rillig /* expect+1: warning: invalid combination of 'pointer to const char' and 'pointer to const int', op '==' [124] */
38 1.12 rillig not_ok(cp == ip);
39 1.16 rillig /* expect+1: warning: invalid combination of 'pointer to const char' and 'pointer to function(int) returning void', op '==' [124] */
40 1.12 rillig not_ok(cp == fp);
41 1.3 rillig ok(vp == (void *)0);
42 1.3 rillig ok(cp == (void *)0);
43 1.3 rillig ok(ip == (void *)0);
44 1.7 rillig ok(fp == (void *)0); /* wrong 274 before 2021-01-25 */
45 1.5 rillig ok((void *)0 == vp);
46 1.5 rillig ok((void *)0 == cp);
47 1.5 rillig ok((void *)0 == ip);
48 1.7 rillig ok((void *)0 == fp); /* wrong 274 before 2021-01-25 */
49 1.3 rillig ok(vp == 0);
50 1.3 rillig ok(cp == 0);
51 1.3 rillig ok(ip == 0);
52 1.3 rillig ok(fp == 0);
53 1.3 rillig ok(vp == 0L);
54 1.3 rillig ok(cp == 0L);
55 1.3 rillig ok(ip == 0L);
56 1.3 rillig ok(fp == 0L);
57 1.2 rillig }
58