When creating builtin functions via init-builtins(), it shouldn't really be needed to give them a type because their purpose is only as a placeholder for the symbol->op->{evaluate,expand,..}. Also, they should be part of the builtin_scope and never be visible. However, currently the global scope is the same as the builtin_scope and these symbols are thus visible via global_scope->symbols where the missing type can be a problem. Fix this to giving to the builtin functions which hadn't a type the same phony type as the other functions had. Reported-by: foobar <foobar@xxxxxxxxxx> Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@xxxxxxxxx> --- builtin.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/builtin.c b/builtin.c index 9f90926cb..acb2fabe9 100644 --- a/builtin.c +++ b/builtin.c @@ -240,9 +240,9 @@ static struct sym_init { { "__builtin_warning", &builtin_fn_type, MOD_TOPLEVEL, &warning_op }, { "__builtin_expect", &builtin_fn_type, MOD_TOPLEVEL, &expect_op }, { "__builtin_choose_expr", &builtin_fn_type, MOD_TOPLEVEL, &choose_op }, - { "__builtin_bswap16", NULL, MOD_TOPLEVEL, &bswap_op }, - { "__builtin_bswap32", NULL, MOD_TOPLEVEL, &bswap_op }, - { "__builtin_bswap64", NULL, MOD_TOPLEVEL, &bswap_op }, + { "__builtin_bswap16", &builtin_fn_type, MOD_TOPLEVEL, &bswap_op }, + { "__builtin_bswap32", &builtin_fn_type, MOD_TOPLEVEL, &bswap_op }, + { "__builtin_bswap64", &builtin_fn_type, MOD_TOPLEVEL, &bswap_op }, { NULL, NULL, 0 } }; -- 2.15.0 -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html