./src/funcs.c:43:33: error: '#' is not followed by a macro parameter 43 | #define SIMPLE_FUNC_BINDING(name) ({\ | ^ ./src/funcs.c:51:1: warning: return type defaults to ‘int’ [-Wimplicit-int] 51 | SIMPLE_FUNC_BINDING(sqrt) | ^~~~~~~~~~~~~~~~~~~ ./src/funcs.c: In function ‘SIMPLE_FUNC_BINDING’: ./src/funcs.c:53:1: error: expected declaration specifiers before ‘SIMPLE_FUNC_BINDING’ 53 | SIMPLE_FUNC_BINDING(exp) | ^~~~~~~~~~~~~~~~~~~ ./src/funcs.c:114:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token 114 | { | ^ ./src/funcs.c:121:1: warning: empty declaration 121 | struct FuncIntro { | ^~~~~~ ./src/funcs.c:129:8: error: parameter ‘intros’ is initialized 129 | struct FuncIntro intros[] = { | ^~~~~~~~~ ./src/funcs.c:130:5: warning: braces around scalar initializer 130 | {"abs", &abs_impl, 1}, | ^ ./src/funcs.c:130:5: note: (near initialization for ‘intros’) ./src/funcs.c:130:6: warning: initialization of ‘struct FuncIntro *’ from incompatible pointer type ‘char *’ [-Wincompatible-pointer-types] 130 | {"abs", &abs_impl, 1}, | ^~~~~ ./src/funcs.c:130:6: note: (near initialization for ‘intros’) ./src/funcs.c:130:13: warning: excess elements in scalar initializer 130 | {"abs", &abs_impl, 1}, | ^ ./src/funcs.c:130:13: note: (near initialization for ‘intros’) ./src/funcs.c:130:24: warning: excess elements in scalar initializer 130 | {"abs", &abs_impl, 1}, | ^ ./src/funcs.c:130:24: note: (near initialization for ‘intros’) ./src/funcs.c:132:5: warning: braces around scalar initializer 132 | {"sqrt", &sqrt_impl, 1}, | ^ ./src/funcs.c:132:5: note: (near initialization for ‘intros’) ./src/funcs.c:132:6: warning: initialization of ‘struct FuncIntro *’ from incompatible pointer type ‘char *’ [-Wincompatible-pointer-types] 132 | {"sqrt", &sqrt_impl, 1}, | ^~~~~~ ./src/funcs.c:132:6: note: (near initialization for ‘intros’) ./src/funcs.c:132:15: error: ‘sqrt_impl’ undeclared (first use in this function) 132 | {"sqrt", &sqrt_impl, 1}, | ^~~~~~~~~ ./src/funcs.c:132:15: note: each undeclared identifier is reported only once for each function it appears in ./src/funcs.c:132:14: warning: excess elements in scalar initializer 132 | {"sqrt", &sqrt_impl, 1}, | ^ ./src/funcs.c:132:14: note: (near initialization for ‘intros’) ./src/funcs.c:132:26: warning: excess elements in scalar initializer 132 | {"sqrt", &sqrt_impl, 1}, | ^ ./src/funcs.c:132:26: note: (near initialization for ‘intros’) ./src/funcs.c:132:5: warning: excess elements in scalar initializer 132 | {"sqrt", &sqrt_impl, 1}, | ^ ./src/funcs.c:132:5: note: (near initialization for ‘intros’) ./src/funcs.c:133:5: warning: braces around scalar initializer 133 | {"exp", &exp_impl, 1}, | ^ ./src/funcs.c:133:5: note: (near initialization for ‘intros’) ./src/funcs.c:133:6: warning: initialization of ‘struct FuncIntro *’ from incompatible pointer type ‘char *’ [-Wincompatible-pointer-types] 133 | {"exp", &exp_impl, 1}, | ^~~~~ ./src/funcs.c:133:6: note: (near initialization for ‘intros’) ./src/funcs.c:133:14: error: ‘exp_impl’ undeclared (first use in this function) 133 | {"exp", &exp_impl, 1}, | ^~~~~~~~ ./src/funcs.c:133:13: warning: excess elements in scalar initializer 133 | {"exp", &exp_impl, 1}, | ^ ./src/funcs.c:133:13: note: (near initialization for ‘intros’) ./src/funcs.c:133:24: warning: excess elements in scalar initializer 133 | {"exp", &exp_impl, 1}, | ^ ./src/funcs.c:133:24: note: (near initialization for ‘intros’) ./src/funcs.c:133:5: warning: excess elements in scalar initializer 133 | {"exp", &exp_impl, 1}, | ^ ./src/funcs.c:133:5: note: (near initialization for ‘intros’) ./src/funcs.c:135:5: warning: braces around scalar initializer 135 | {"sin", &sin_impl, 1}, | ^ ./src/funcs.c:135:5: note: (near initialization for ‘intros’) ./src/funcs.c:135:6: warning: initialization of ‘struct FuncIntro *’ from incompatible pointer type ‘char *’ [-Wincompatible-pointer-types] 135 | {"sin", &sin_impl, 1}, | ^~~~~ ./src/funcs.c:135:6: note: (near initialization for ‘intros’) ./src/funcs.c:135:14: error: ‘sin_impl’ undeclared (first use in this function) 135 | {"sin", &sin_impl, 1}, | ^~~~~~~~ ./src/funcs.c:135:13: warning: excess elements in scalar initializer 135 | {"sin", &sin_impl, 1}, | ^ ./src/funcs.c:135:13: note: (near initialization for ‘intros’) ./src/funcs.c:135:24: warning: excess elements in scalar initializer 135 | {"sin", &sin_impl, 1}, | ^ ./src/funcs.c:135:24: note: (near initialization for ‘intros’) ./src/funcs.c:135:5: warning: excess elements in scalar initializer 135 | {"sin", &sin_impl, 1}, | ^ ./src/funcs.c:135:5: note: (near initialization for ‘intros’) ./src/funcs.c:136:5: warning: braces around scalar initializer 136 | {"cos", &cos_impl, 1}, | ^ ./src/funcs.c:136:5: note: (near initialization for ‘intros’) ./src/funcs.c:136:6: warning: initialization of ‘struct FuncIntro *’ from incompatible pointer type ‘char *’ [-Wincompatible-pointer-types] 136 | {"cos", &cos_impl, 1}, | ^~~~~ ./src/funcs.c:136:6: note: (near initialization for ‘intros’) ./src/funcs.c:136:14: error: ‘cos_impl’ undeclared (first use in this function); did you mean ‘abs_impl’? 136 | {"cos", &cos_impl, 1}, | ^~~~~~~~ | abs_impl ./src/funcs.c:136:13: warning: excess elements in scalar initializer 136 | {"cos", &cos_impl, 1}, | ^ ./src/funcs.c:136:13: note: (near initialization for ‘intros’) ./src/funcs.c:136:24: warning: excess elements in scalar initializer 136 | {"cos", &cos_impl, 1}, | ^ ./src/funcs.c:136:24: note: (near initialization for ‘intros’) ./src/funcs.c:136:5: warning: excess elements in scalar initializer 136 | {"cos", &cos_impl, 1}, | ^ ./src/funcs.c:136:5: note: (near initialization for ‘intros’) ./src/funcs.c:137:5: warning: braces around scalar initializer 137 | {"tan", &tan_impl, 1}, | ^ ./src/funcs.c:137:5: note: (near initialization for ‘intros’) ./src/funcs.c:137:6: warning: initialization of ‘struct FuncIntro *’ from incompatible pointer type ‘char *’ [-Wincompatible-pointer-types] 137 | {"tan", &tan_impl, 1}, | ^~~~~ ./src/funcs.c:137:6: note: (near initialization for ‘intros’) ./src/funcs.c:137:14: error: ‘tan_impl’ undeclared (first use in this function) 137 | {"tan", &tan_impl, 1}, | ^~~~~~~~ ./src/funcs.c:137:13: warning: excess elements in scalar initializer 137 | {"tan", &tan_impl, 1}, | ^ ./src/funcs.c:137:13: note: (near initialization for ‘intros’) ./src/funcs.c:137:24: warning: excess elements in scalar initializer 137 | {"tan", &tan_impl, 1}, | ^ ./src/funcs.c:137:24: note: (near initialization for ‘intros’) ./src/funcs.c:137:5: warning: excess elements in scalar initializer 137 | {"tan", &tan_impl, 1}, | ^ ./src/funcs.c:137:5: note: (near initialization for ‘intros’) ./src/funcs.c:138:5: warning: braces around scalar initializer 138 | {"ln", &ln_impl, 1}, | ^ ./src/funcs.c:138:5: note: (near initialization for ‘intros’) ./src/funcs.c:138:6: warning: initialization of ‘struct FuncIntro *’ from incompatible pointer type ‘char *’ [-Wincompatible-pointer-types] 138 | {"ln", &ln_impl, 1}, | ^~~~ ./src/funcs.c:138:6: note: (near initialization for ‘intros’) ./src/funcs.c:138:13: error: ‘ln_impl’ undeclared (first use in this function) 138 | {"ln", &ln_impl, 1}, | ^~~~~~~ ./src/funcs.c:138:12: warning: excess elements in scalar initializer 138 | {"ln", &ln_impl, 1}, | ^ ./src/funcs.c:138:12: note: (near initialization for ‘intros’) ./src/funcs.c:138:22: warning: excess elements in scalar initializer 138 | {"ln", &ln_impl, 1}, | ^ ./src/funcs.c:138:22: note: (near initialization for ‘intros’) ./src/funcs.c:138:5: warning: excess elements in scalar initializer 138 | {"ln", &ln_impl, 1}, | ^ ./src/funcs.c:138:5: note: (near initialization for ‘intros’) ./src/funcs.c:139:5: warning: braces around scalar initializer 139 | {"log", &log_impl, 1}, | ^ ./src/funcs.c:139:5: note: (near initialization for ‘intros’) ./src/funcs.c:139:6: warning: initialization of ‘struct FuncIntro *’ from incompatible pointer type ‘char *’ [-Wincompatible-pointer-types] 139 | {"log", &log_impl, 1}, | ^~~~~ ./src/funcs.c:139:6: note: (near initialization for ‘intros’) ./src/funcs.c:139:14: error: ‘log_impl’ undeclared (first use in this function) 139 | {"log", &log_impl, 1}, | ^~~~~~~~ ./src/funcs.c:139:13: warning: excess elements in scalar initializer 139 | {"log", &log_impl, 1}, | ^ ./src/funcs.c:139:13: note: (near initialization for ‘intros’) ./src/funcs.c:139:24: warning: excess elements in scalar initializer 139 | {"log", &log_impl, 1}, | ^ ./src/funcs.c:139:24: note: (near initialization for ‘intros’) ./src/funcs.c:139:5: warning: excess elements in scalar initializer 139 | {"log", &log_impl, 1}, | ^ ./src/funcs.c:139:5: note: (near initialization for ‘intros’) ./src/funcs.c:141:5: warning: braces around scalar initializer 141 | {"max", &max_impl, 2}, | ^ ./src/funcs.c:141:5: note: (near initialization for ‘intros’) ./src/funcs.c:141:6: warning: initialization of ‘struct FuncIntro *’ from incompatible pointer type ‘char *’ [-Wincompatible-pointer-types] 141 | {"max", &max_impl, 2}, | ^~~~~ ./src/funcs.c:141:6: note: (near initialization for ‘intros’) ./src/funcs.c:141:14: error: ‘max_impl’ undeclared (first use in this function) 141 | {"max", &max_impl, 2}, | ^~~~~~~~ ./src/funcs.c:141:13: warning: excess elements in scalar initializer 141 | {"max", &max_impl, 2}, | ^ ./src/funcs.c:141:13: note: (near initialization for ‘intros’) ./src/funcs.c:141:24: warning: excess elements in scalar initializer 141 | {"max", &max_impl, 2}, | ^ ./src/funcs.c:141:24: note: (near initialization for ‘intros’) ./src/funcs.c:141:5: warning: excess elements in scalar initializer 141 | {"max", &max_impl, 2}, | ^ ./src/funcs.c:141:5: note: (near initialization for ‘intros’) ./src/funcs.c:142:5: warning: braces around scalar initializer 142 | {"get_pi", &get_pi_impl, 0}, | ^ ./src/funcs.c:142:5: note: (near initialization for ‘intros’) ./src/funcs.c:142:6: warning: initialization of ‘struct FuncIntro *’ from incompatible pointer type ‘char *’ [-Wincompatible-pointer-types] 142 | {"get_pi", &get_pi_impl, 0}, | ^~~~~~~~ ./src/funcs.c:142:6: note: (near initialization for ‘intros’) ./src/funcs.c:142:17: error: ‘get_pi_impl’ undeclared (first use in this function) 142 | {"get_pi", &get_pi_impl, 0}, | ^~~~~~~~~~~ ./src/funcs.c:142:16: warning: excess elements in scalar initializer 142 | {"get_pi", &get_pi_impl, 0}, | ^ ./src/funcs.c:142:16: note: (near initialization for ‘intros’) ./src/funcs.c:142:30: warning: excess elements in scalar initializer 142 | {"get_pi", &get_pi_impl, 0}, | ^ ./src/funcs.c:142:30: note: (near initialization for ‘intros’) ./src/funcs.c:142:5: warning: excess elements in scalar initializer 142 | {"get_pi", &get_pi_impl, 0}, | ^ ./src/funcs.c:142:5: note: (near initialization for ‘intros’) ./src/funcs.c:143:5: warning: braces around scalar initializer 143 | {"", 0, 0} | ^ ./src/funcs.c:143:5: note: (near initialization for ‘intros’) ./src/funcs.c:143:6: warning: initialization of ‘struct FuncIntro *’ from incompatible pointer type ‘char *’ [-Wincompatible-pointer-types] 143 | {"", 0, 0} | ^~ ./src/funcs.c:143:6: note: (near initialization for ‘intros’) ./src/funcs.c:143:10: warning: excess elements in scalar initializer 143 | {"", 0, 0} | ^ ./src/funcs.c:143:10: note: (near initialization for ‘intros’) ./src/funcs.c:143:13: warning: excess elements in scalar initializer 143 | {"", 0, 0} | ^ ./src/funcs.c:143:13: note: (near initialization for ‘intros’) ./src/funcs.c:143:5: warning: excess elements in scalar initializer 143 | {"", 0, 0} | ^ ./src/funcs.c:143:5: note: (near initialization for ‘intros’) ./src/funcs.c:146:12: error: storage class specified for parameter ‘nbOfFuncs’ 146 | static int nbOfFuncs = sizeof(intros)/sizeof(struct FuncIntro); | ^~~~~~~~~ ./src/funcs.c:146:1: error: parameter ‘nbOfFuncs’ is initialized 146 | static int nbOfFuncs = sizeof(intros)/sizeof(struct FuncIntro); | ^~~~~~ ./src/funcs.c:146:30: warning: ‘sizeof’ on array function parameter ‘intros’ will return size of ‘struct FuncIntro *’ [-Wsizeof-array-argument] 146 | static int nbOfFuncs = sizeof(intros)/sizeof(struct FuncIntro); | ^ ./src/funcs.c:129:18: note: declared here 129 | struct FuncIntro intros[] = { | ^~~~~~ ./src/funcs.c:152:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token 152 | { | ^ ./src/funcs.c:162:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token 162 | { | ^ ./src/funcs.c:51:1: warning: type of ‘sqrt’ defaults to ‘int’ [-Wimplicit-int] 51 | SIMPLE_FUNC_BINDING(sqrt) | ^~~~~~~~~~~~~~~~~~~ ./src/funcs.c:146:12: error: declaration for parameter ‘nbOfFuncs’ but no such parameter 146 | static int nbOfFuncs = sizeof(intros)/sizeof(struct FuncIntro); | ^~~~~~~~~ ./src/funcs.c:129:18: error: declaration for parameter ‘intros’ but no such parameter 129 | struct FuncIntro intros[] = { | ^~~~~~ ./src/funcs.c:196: error: expected ‘{’ at end of input ./src/funcs.c:51:1: warning: unused parameter ‘sqrt’ [-Wunused-parameter] 51 | SIMPLE_FUNC_BINDING(sqrt) | ^~~~~~~~~~~~~~~~~~~ ./src/funcs.c:146:12: warning: unused parameter ‘nbOfFuncs’ [-Wunused-parameter] 146 | static int nbOfFuncs = sizeof(intros)/sizeof(struct FuncIntro); | ^~~~~~~~~ ./src/funcs.c:196: warning: control reaches end of non-void function [-Wreturn-type] ./src/number_parsing.c: In function ‘parse_clean_positive_integer’: ./src/number_parsing.c:21:29: warning: binary constants are a C2X feature or GCC extension 21 | (numeralIndex & 0b001111) | ^~~~~~~~ make: *** [Makefile:11: test] Error 1