&is_used attribute to suppress set-but-not-used usage warnings

This commit is contained in:
Vern Paxson 2021-02-05 22:17:36 -08:00
parent 772834e375
commit 8a3622a726
4 changed files with 9 additions and 4 deletions

View file

@ -22,7 +22,7 @@ const char* attr_name(AttrTag t)
"&group", "&log", "&error_handler", "&type_column",
"(&tracked)", "&on_change", "&broker_store",
"&broker_allow_complex_type", "&backend", "&deprecated",
"&is_set",
"&is_assigned", "&is_used",
};
return attr_names[int(t)];
@ -291,6 +291,7 @@ void Attributes::CheckAttr(Attr* a)
case ATTR_DEPRECATED:
case ATTR_REDEF:
case ATTR_IS_ASSIGNED:
case ATTR_IS_USED:
break;
case ATTR_OPTIONAL:

View file

@ -46,7 +46,8 @@ enum AttrTag {
ATTR_BROKER_STORE_ALLOW_COMPLEX, // for Broker store backed tables
ATTR_BACKEND, // for Broker store backed tables
ATTR_DEPRECATED,
ATTR_IS_ASSIGNED, // to suppress warnings
ATTR_IS_ASSIGNED, // to suppress usage warnings
ATTR_IS_USED, // to suppress usage warnings
NUM_ATTRS // this item should always be last
};

View file

@ -5,7 +5,7 @@
// Switching parser table type fixes ambiguity problems.
%define lr.type ielr
%expect 135
%expect 141
%token TOK_ADD TOK_ADD_TO TOK_ADDR TOK_ANY
%token TOK_ATENDIF TOK_ATELSE TOK_ATIF TOK_ATIFDEF TOK_ATIFNDEF
@ -28,7 +28,7 @@
%token TOK_ATTR_BROKER_STORE_ALLOW_COMPLEX TOK_ATTR_BACKEND
%token TOK_ATTR_PRIORITY TOK_ATTR_LOG TOK_ATTR_ERROR_HANDLER
%token TOK_ATTR_TYPE_COLUMN TOK_ATTR_DEPRECATED
%token TOK_ATTR_IS_ASSIGNED
%token TOK_ATTR_IS_ASSIGNED TOK_ATTR_IS_USED
%token TOK_DEBUG
@ -1474,6 +1474,8 @@ attr:
{ $$ = new zeek::detail::Attr(zeek::detail::ATTR_REDEF); }
| TOK_ATTR_IS_ASSIGNED
{ $$ = new zeek::detail::Attr(zeek::detail::ATTR_IS_ASSIGNED); }
| TOK_ATTR_IS_USED
{ $$ = new zeek::detail::Attr(zeek::detail::ATTR_IS_USED); }
| TOK_ATTR_ADD_FUNC '=' expr
{ $$ = new zeek::detail::Attr(zeek::detail::ATTR_ADD_FUNC, {zeek::AdoptRef{}, $3}); }
| TOK_ATTR_DEL_FUNC '=' expr

View file

@ -286,6 +286,7 @@ when return TOK_WHEN;
&log return TOK_ATTR_LOG;
&optional return TOK_ATTR_OPTIONAL;
&is_assigned return TOK_ATTR_IS_ASSIGNED;
&is_used return TOK_ATTR_IS_USED;
&priority return TOK_ATTR_PRIORITY;
&type_column return TOK_ATTR_TYPE_COLUMN;
&read_expire return TOK_ATTR_EXPIRE_READ;