&is_set attribute to suppress -u possibly-used-but-not-set warnings

This commit is contained in:
Vern Paxson 2021-01-23 10:30:41 -08:00
parent 28bb39b548
commit ca33a15626
4 changed files with 9 additions and 2 deletions

View file

@ -22,6 +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",
};
return attr_names[int(t)];
@ -333,6 +334,7 @@ void Attributes::CheckAttr(Attr* a)
switch ( a->Tag() ) {
case ATTR_DEPRECATED:
case ATTR_REDEF:
case ATTR_IS_SET:
break;
case ATTR_OPTIONAL:

View file

@ -46,6 +46,7 @@ enum AttrTag {
ATTR_BROKER_STORE_ALLOW_COMPLEX, // for Broker store backed tables
ATTR_BACKEND, // for Broker store backed tables
ATTR_DEPRECATED,
ATTR_IS_SET, // to suppress 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 129
%expect 135
%token TOK_ADD TOK_ADD_TO TOK_ADDR TOK_ANY
%token TOK_ATENDIF TOK_ATELSE TOK_ATIF TOK_ATIFDEF TOK_ATIFNDEF
@ -28,6 +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_SET
%token TOK_DEBUG
@ -1471,6 +1472,8 @@ attr:
{ $$ = new zeek::detail::Attr(zeek::detail::ATTR_OPTIONAL); }
| TOK_ATTR_REDEF
{ $$ = new zeek::detail::Attr(zeek::detail::ATTR_REDEF); }
| TOK_ATTR_IS_SET
{ $$ = new zeek::detail::Attr(zeek::detail::ATTR_IS_SET); }
| TOK_ATTR_ADD_FUNC '=' expr
{ $$ = new zeek::detail::Attr(zeek::detail::ATTR_ADD_FUNC, {zeek::AdoptRef{}, $3}); }
| TOK_ATTR_DEL_FUNC '=' expr

View file

@ -285,6 +285,7 @@ when return TOK_WHEN;
&expire_func return TOK_ATTR_EXPIRE_FUNC;
&log return TOK_ATTR_LOG;
&optional return TOK_ATTR_OPTIONAL;
&is_set return TOK_ATTR_IS_SET;
&priority return TOK_ATTR_PRIORITY;
&type_column return TOK_ATTR_TYPE_COLUMN;
&read_expire return TOK_ATTR_EXPIRE_READ;