1 1.4 rillig /* $NetBSD: msg_155.c,v 1.4 2021/06/28 10:23:50 rillig Exp $ */ 2 1.1 rillig # 3 "msg_155.c" 3 1.1 rillig 4 1.4 rillig // Test for message: passing '%s' to incompatible '%s', arg #%d [155] 5 1.4 rillig 6 1.1 rillig 7 1.3 rillig void c99_6_7_6_example_a(int); 8 1.3 rillig void c99_6_7_6_example_b(int *); 9 1.3 rillig void c99_6_7_6_example_c(int *[3]); 10 1.3 rillig void c99_6_7_6_example_d(int (*)[3]); 11 1.3 rillig void c99_6_7_6_example_e(int (*)[*]); /* expect: syntax error ']' *//* FIXME */ 12 1.3 rillig // FIXME: assertion "sym->s_type != NULL" failed in declare_argument at decl.c:2436 13 1.3 rillig // void c99_6_7_6_example_f(int *()); 14 1.3 rillig void c99_6_7_6_example_g(int (*)(void)); 15 1.3 rillig void c99_6_7_6_example_h(int (*const[])(unsigned int, ...)); 16 1.3 rillig 17 1.3 rillig struct incompatible { 18 1.3 rillig int member; 19 1.3 rillig }; 20 1.3 rillig 21 1.3 rillig void 22 1.3 rillig provoke_error_messages(struct incompatible arg) 23 1.3 rillig { 24 1.4 rillig /* expect+1: 'int' */ 25 1.3 rillig c99_6_7_6_example_a(arg); 26 1.3 rillig 27 1.4 rillig /* expect+1: 'pointer to int' */ 28 1.3 rillig c99_6_7_6_example_b(arg); 29 1.3 rillig 30 1.4 rillig /* C99 says 'array[3] of pointer to int', which is close enough. */ 31 1.4 rillig /* expect+1: 'pointer to pointer to int' */ 32 1.3 rillig c99_6_7_6_example_c(arg); 33 1.3 rillig 34 1.4 rillig /* expect+1: 'pointer to array[3] of int' */ 35 1.3 rillig c99_6_7_6_example_d(arg); 36 1.3 rillig 37 1.4 rillig /* TODO: C99 says 'pointer to a variable length array of an unspecified number of ints' */ 38 1.3 rillig /* FIXME: no warning or error at all for an undefined function? */ 39 1.3 rillig c99_6_7_6_example_e(arg); 40 1.3 rillig 41 1.4 rillig /* TODO: C99 says 'function with no parameter specification returning a pointer to int' */ 42 1.3 rillig /* FIXME: no warning or error at all for an undefined function? */ 43 1.3 rillig c99_6_7_6_example_f(arg); 44 1.3 rillig 45 1.4 rillig /* TODO: fix type_name to generate '(void)' in this case */ 46 1.4 rillig /* expect+1: 'pointer to function() returning int' */ 47 1.3 rillig c99_6_7_6_example_g(arg); 48 1.3 rillig 49 1.4 rillig /* expect+1: 'pointer to const pointer to function(unsigned int, ...) returning int' */ 50 1.3 rillig c99_6_7_6_example_h(arg); 51 1.3 rillig } 52