mirror of
https://github.com/verilator/verilator.git
synced 2026-10-06 10:03:44 +02:00
Fix null characters in shortened identifiers (#4946).
This commit is contained in:
+7
-2
@@ -563,8 +563,13 @@ string VName::hashedName() {
|
||||
VHashSha256 hash{m_name};
|
||||
const string suffix = "__Vhsh" + hash.digestSymbol();
|
||||
if (s_minLength < s_maxLength) {
|
||||
s_dehashMap[suffix] = m_name.substr(s_minLength);
|
||||
m_hashed = m_name.substr(0, s_minLength) + suffix;
|
||||
// Keep a prefix from the original name
|
||||
// Backup over digits so adding __Vhash doesn't look like a encoded hex digit
|
||||
// ("__0__Vhsh")
|
||||
size_t prefLength = s_minLength;
|
||||
while (prefLength >= 1 && m_name[prefLength - 1] != '_') --prefLength;
|
||||
s_dehashMap[suffix] = m_name.substr(prefLength);
|
||||
m_hashed = m_name.substr(0, prefLength) + suffix;
|
||||
} else {
|
||||
s_dehashMap[suffix] = m_name;
|
||||
m_hashed = suffix;
|
||||
|
||||
Reference in New Issue
Block a user