1*e6298b92Srillig /* $NetBSD: msg_215.c,v 1.13 2023/07/07 19:45:22 rillig Exp $ */
2a0a15c14Srillig # 3 "msg_215.c"
3a0a15c14Srillig
446698ec5Srillig // Test for message: function '%s' implicitly declared to return int [215]
5a0a15c14Srillig
61944cae4Srillig /*
71944cae4Srillig * In traditional C and C90, it was possible to implicitly declare a function
81944cae4Srillig * by just calling it, without defining a prototype first. Such a function
91944cae4Srillig * would then be defined as taking unspecified parameters and returning int.
101944cae4Srillig */
111944cae4Srillig
12*e6298b92Srillig /* lint1-extra-flags: -X 351 */
13*e6298b92Srillig
141944cae4Srillig struct str {
151944cae4Srillig int dummy;
161944cae4Srillig };
171944cae4Srillig
181944cae4Srillig /* ARGSUSED */
1961e921f9Srillig void
test(struct str str,const double * p_double)20693a4e07Srillig test(struct str str, const double *p_double)
2161e921f9Srillig {
22f9d22df1Srillig /* expect+1: error: function 'name' implicitly declared to return int [215] */
231944cae4Srillig name();
241944cae4Srillig
2571e283daSrillig /* expect+2: error: 'parenthesized' undefined [99] */
2640a9b8fdSrillig /* expect+1: error: cannot call 'int', must be a function [149] */
2771e283daSrillig (parenthesized)();
2871e283daSrillig
2919c35874Srillig /* expect+2: error: type 'struct str' does not have member 'member' [101] */
3040a9b8fdSrillig /* expect+1: error: cannot call 'int', must be a function [149] */
311944cae4Srillig str.member();
32f63ca675Srillig
33f63ca675Srillig /* https://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html */
34f63ca675Srillig __builtin_whatever(123, "string");
35f63ca675Srillig __atomic_whatever(123, "string");
36693a4e07Srillig /* obsolete but still in use, as of 2021 */
37693a4e07Srillig __sync_whatever(123, "string");
38693a4e07Srillig
39693a4e07Srillig /* https://software.intel.com/sites/landingpage/IntrinsicsGuide/ */
40693a4e07Srillig _mm_load_sd(p_double);
4161e921f9Srillig }
42