diff options
author | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2020-05-13 22:05:45 +0200 |
---|---|---|
committer | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2020-05-17 23:24:09 +0200 |
commit | d58b2cd305c6b70ec50e6392fa14c07fb9c67441 (patch) | |
tree | c47ea731260862e36ea8c92a35152037c5110828 | |
parent | b508d84449b10b696c20be2ca58a89dfccb620d6 (diff) | |
download | sparse-d58b2cd305c6b70ec50e6392fa14c07fb9c67441.tar.gz |
attribute: add support for unused
Add support for the attribute 'unused' (and its double underscore
variant. There is no semantic attached to it but it's now at least
parsed and added to the modifiers.
Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
-rw-r--r-- | parse.c | 2 | ||||
-rw-r--r-- | show-parse.c | 1 | ||||
-rw-r--r-- | symbol.h | 6 |
3 files changed, 6 insertions, 3 deletions
@@ -571,6 +571,8 @@ static struct init_keyword { { "__noderef__",NS_KEYWORD, MOD_NODEREF, .op = &attr_mod_op }, { "safe", NS_KEYWORD, MOD_SAFE, .op = &attr_mod_op }, { "__safe__", NS_KEYWORD, MOD_SAFE, .op = &attr_mod_op }, + { "unused", NS_KEYWORD, MOD_UNUSED, .op = &attr_mod_op }, + { "__unused__", NS_KEYWORD, MOD_UNUSED, .op = &attr_mod_op }, { "force", NS_KEYWORD, .op = &attr_force_op }, { "__force__", NS_KEYWORD, .op = &attr_force_op }, { "bitwise", NS_KEYWORD, MOD_BITWISE, .op = &attr_bitwise_op }, diff --git a/show-parse.c b/show-parse.c index 0c4b9ec2..f4c7de30 100644 --- a/show-parse.c +++ b/show-parse.c @@ -140,6 +140,7 @@ const char *modifier_string(unsigned long mod) {MOD_TLS, "[tls]"}, {MOD_TOPLEVEL, "[toplevel]"}, {MOD_UNSIGNED, "[unsigned]"}, + {MOD_UNUSED, "[unused]"}, {MOD_USERTYPE, "[usertype]"}, }; @@ -235,8 +235,8 @@ struct symbol { // MOD UNUSED 0x00080000 // MOD UNUSED 0x00100000 // MOD UNUSED 0x00200000 - // MOD UNUSED 0x00400000 +#define MOD_UNUSED 0x00400000 #define MOD_SAFE 0x00800000 // non-null/non-trapping pointer #define MOD_PURE 0x01000000 #define MOD_BITWISE 0x02000000 @@ -252,7 +252,7 @@ struct symbol { #define MOD_ESIGNED (MOD_SIGNED | MOD_EXPLICITLY_SIGNED) #define MOD_SIGNEDNESS (MOD_SIGNED | MOD_UNSIGNED | MOD_EXPLICITLY_SIGNED) #define MOD_SPECIFIER MOD_SIGNEDNESS -#define MOD_IGNORE (MOD_STORAGE | MOD_ACCESS | MOD_USERTYPE | MOD_EXPLICITLY_SIGNED | MOD_EXT_VISIBLE) +#define MOD_IGNORE (MOD_STORAGE | MOD_ACCESS | MOD_USERTYPE | MOD_EXPLICITLY_SIGNED | MOD_EXT_VISIBLE | MOD_UNUSED) #define MOD_QUALIFIER (MOD_CONST | MOD_VOLATILE | MOD_RESTRICT) #define MOD_PTRINHERIT (MOD_QUALIFIER | MOD_ATOMIC | MOD_NODEREF | MOD_NORETURN | MOD_NOCAST) /* modifiers preserved by typeof() operator */ @@ -262,7 +262,7 @@ struct symbol { /* like cvr-qualifiers but 'reversed' (OK: source <= target) */ #define MOD_REV_QUAL (MOD_PURE|MOD_NORETURN) /* do not warn when these are duplicated */ -#define MOD_DUP_OK 0 +#define MOD_DUP_OK (MOD_UNUSED) /* Current parsing/evaluation function */ |