mirror of https://github.com/YosysHQ/yosys.git
Work around `std::reverse` miscompilation with empty range
This causes problems when compiling with fuzzing instrumenation enabled.
This commit is contained in:
parent
bd7f2d9ba4
commit
13d9fffdb9
|
|
@ -286,6 +286,7 @@ struct RTLILFrontendWorker {
|
||||||
if (width > MAX_CONST_WIDTH)
|
if (width > MAX_CONST_WIDTH)
|
||||||
error("Constant width %lld out of range before `%s`.", width, error_token());
|
error("Constant width %lld out of range before `%s`.", width, error_token());
|
||||||
bits.reserve(width);
|
bits.reserve(width);
|
||||||
|
int start_idx = idx;
|
||||||
while (true) {
|
while (true) {
|
||||||
RTLIL::State bit;
|
RTLIL::State bit;
|
||||||
switch (line[idx]) {
|
switch (line[idx]) {
|
||||||
|
|
@ -301,6 +302,7 @@ struct RTLILFrontendWorker {
|
||||||
++idx;
|
++idx;
|
||||||
}
|
}
|
||||||
done:
|
done:
|
||||||
|
if (start_idx < idx)
|
||||||
std::reverse(bits.begin(), bits.end());
|
std::reverse(bits.begin(), bits.end());
|
||||||
|
|
||||||
if (GetSize(bits) > width)
|
if (GetSize(bits) > width)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue