Add enum value negative check

There was one already at parse time, this adds a check later so that
cases like overflows or internal enums with negative values get caught.
This commit is contained in:
Evan Typanski 2024-09-17 12:04:19 -04:00
parent d3dd8a155d
commit 08348cd177
3 changed files with 16 additions and 0 deletions

View file

@ -1542,6 +1542,12 @@ void EnumType::CheckAndAddName(const string& module_name, const char* name, zeek
return;
}
if ( val < 0 ) {
reporter->Error("enumerator value cannot be negative");
SetError();
return;
}
auto fullname = detail::make_full_var_name(module_name.c_str(), name);
auto id = id::find(fullname);