Sparse currently parses and ignores the alias and visibility attributes, but not the variants __alias__ and __visibility__, which GCC permits even in ANSI C to allow for use in headers. Add support for these variants. Signed-off-by: Josh Triplett <josh@xxxxxxxxxxxxxxx> Signed-off-by: Pavel Roskin <proski@xxxxxxx> --- Original patch by Pavel Roskin; modified version with consolidated if statements by me, with signoff from Pavel. parse.c | 6 ++++-- ident-list.h | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/ident-list.h b/ident-list.h index 95bb96a..ecdce6d 100644 --- a/ident-list.h +++ b/ident-list.h @@ -56,8 +56,8 @@ IDENT(__const); IDENT(__const__); IDENT( IDENT(__noreturn__); IDENT(regparm); IDENT(weak); IDENT(__weak__); IDENT(__no_instrument_function__); IDENT(no_instrument_function); IDENT(__sentinel__); IDENT(sentinel); -IDENT(alias); IDENT(pure); IDENT(always_inline); -IDENT(syscall_linkage); IDENT(visibility); +IDENT(alias); IDENT(__alias__); IDENT(pure); IDENT(always_inline); +IDENT(syscall_linkage); IDENT(visibility); IDENT(__visibility__); IDENT(bitwise); IDENT(__bitwise__); IDENT(model); IDENT(__model__); IDENT(__format_arg__); diff --git a/parse.c b/parse.c index c536ec2..6857541 100644 --- a/parse.c +++ b/parse.c @@ -528,7 +528,8 @@ static const char * handle_attribute(str if (attribute == &weak_ident || attribute == &__weak___ident) return NULL; - if (attribute == &alias_ident) + if (attribute == &alias_ident || + attribute == &__alias___ident) return NULL; if (attribute == &pure_ident || attribute == &__pure___ident) @@ -537,7 +538,8 @@ static const char * handle_attribute(str return NULL; if (attribute == &syscall_linkage_ident) return NULL; - if (attribute == &visibility_ident) + if (attribute == &visibility_ident || + attribute == &__visibility___ident) return NULL; if (attribute == &deprecated_ident || attribute == &__deprecated___ident) - 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