liberty no warning for lower case unit suffix

Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
James Cherry 2023-08-22 09:25:27 -07:00
parent 96348ebe58
commit 2c28538bea
1 changed files with 22 additions and 18 deletions

View File

@ -770,7 +770,7 @@ LibertyReader::parseUnits(LibertyAttr *attr,
// Unit format is <multipler_digits><scale_suffix_char><unit_suffix>. // Unit format is <multipler_digits><scale_suffix_char><unit_suffix>.
// Find the multiplier digits. // Find the multiplier digits.
string units = getAttrString(attr); string units = getAttrString(attr);
size_t mult_end = units.find_first_not_of("01234567890"); size_t mult_end = units.find_first_not_of("0123456789");
float mult = 1.0F; float mult = 1.0F;
string scale_suffix; string scale_suffix;
if (mult_end != units.npos) { if (mult_end != units.npos) {
@ -789,26 +789,30 @@ LibertyReader::parseUnits(LibertyAttr *attr,
scale_suffix = units; scale_suffix = units;
float scale_mult = 1.0F; float scale_mult = 1.0F;
if (scale_suffix.size() >= 2 && scale_suffix.substr(1) == unit_suffix) { if (scale_suffix.size() >= 2) {
char scale_char = tolower(scale_suffix[0]); string suffix = scale_suffix.substr(1);
if (scale_char == 'k') if (stringEqual(suffix.c_str(), unit_suffix)) {
scale_mult = 1E+3F; char scale_char = tolower(scale_suffix[0]);
else if (scale_char == 'm') if (scale_char == 'k')
scale_mult = 1E-3F; scale_mult = 1E+3F;
else if (scale_char == 'u') else if (scale_char == 'm')
scale_mult = 1E-6F; scale_mult = 1E-3F;
else if (scale_char == 'n') else if (scale_char == 'u')
scale_mult = 1E-9F; scale_mult = 1E-6F;
else if (scale_char == 'p') else if (scale_char == 'n')
scale_mult = 1E-12F; scale_mult = 1E-9F;
else if (scale_char == 'f') else if (scale_char == 'p')
scale_mult = 1E-15F; scale_mult = 1E-12F;
else if (scale_char == 'f')
scale_mult = 1E-15F;
else
libWarn(39, attr, "unknown unit scale %c.", scale_char);
}
else else
libWarn(39, attr, "unknown unit scale %c.", scale_char); libWarn(40, attr, "unknown unit suffix %s.", suffix.c_str());
} }
else if (!stringEqual(scale_suffix.c_str(), unit_suffix)) else if (!stringEqual(scale_suffix.c_str(), unit_suffix))
libWarn(40, attr, "unknown unit suffix %s.", scale_suffix.c_str()); libWarn(171, attr, "unknown unit suffix %s.", scale_suffix.c_str());
scale_var = scale_mult * mult; scale_var = scale_mult * mult;
unit->setScale(scale_var); unit->setScale(scale_var);
} }