mirror of
https://github.com/YosysHQ/yosys
synced 2026-07-14 11:15:40 +00:00
long long to int truncation checks
This commit is contained in:
parent
1dbefdbd49
commit
8f0028652a
1 changed files with 18 additions and 6 deletions
|
|
@ -538,8 +538,12 @@ struct RTLILFrontendWorker {
|
||||||
upto = true;
|
upto = true;
|
||||||
else if (try_parse_keyword("signed"))
|
else if (try_parse_keyword("signed"))
|
||||||
is_signed = true;
|
is_signed = true;
|
||||||
else if (try_parse_keyword("offset"))
|
else if (try_parse_keyword("offset")) {
|
||||||
start_offset = parse_integer();
|
long long offset_val = parse_integer();
|
||||||
|
if (offset_val < INT_MIN || offset_val > INT_MAX)
|
||||||
|
error("Wire offset %lld out of range before `%s`.", offset_val, error_token());
|
||||||
|
start_offset = offset_val;
|
||||||
|
}
|
||||||
else if (try_parse_keyword("input")) {
|
else if (try_parse_keyword("input")) {
|
||||||
port_id = parse_integer();
|
port_id = parse_integer();
|
||||||
port_input = true;
|
port_input = true;
|
||||||
|
|
@ -595,10 +599,18 @@ struct RTLILFrontendWorker {
|
||||||
error("Memory width %lld out of range before `%s`.", width_val, error_token());
|
error("Memory width %lld out of range before `%s`.", width_val, error_token());
|
||||||
width = width_val;
|
width = width_val;
|
||||||
}
|
}
|
||||||
else if (try_parse_keyword("size"))
|
else if (try_parse_keyword("size")) {
|
||||||
size = parse_integer();
|
long long size_val = parse_integer();
|
||||||
else if (try_parse_keyword("offset"))
|
if (size_val < INT_MIN || size_val > INT_MAX)
|
||||||
start_offset = parse_integer();
|
error("Memory size %lld out of range before `%s`.", size_val, error_token());
|
||||||
|
size = size_val;
|
||||||
|
}
|
||||||
|
else if (try_parse_keyword("offset")) {
|
||||||
|
long long offset_val = parse_integer();
|
||||||
|
if (offset_val < INT_MIN || offset_val > INT_MAX)
|
||||||
|
error("Memory offset %lld out of range before `%s`.", offset_val, error_token());
|
||||||
|
start_offset = offset_val;
|
||||||
|
}
|
||||||
else if (try_parse_eol())
|
else if (try_parse_eol())
|
||||||
error("Missing memory ID");
|
error("Missing memory ID");
|
||||||
else
|
else
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue