Disallow language keywords to be used as identifiers by NameDispenser and VarNameCleaner

Also introduce isRestrictedIdentifier helper in OptimizerUtilities
This commit is contained in:
Alex Beregszaszi
2020-08-31 12:52:17 +01:00
parent 2ebc4bb9a7
commit 2426616859
5 changed files with 21 additions and 6 deletions
+2 -3
View File
@@ -17,6 +17,7 @@
// SPDX-License-Identifier: GPL-3.0
#include <libyul/optimiser/VarNameCleaner.h>
#include <libyul/optimiser/OptimizerUtilities.h>
#include <libyul/AsmData.h>
#include <libyul/Dialect.h>
@@ -110,9 +111,7 @@ YulString VarNameCleaner::findCleanName(YulString const& _name) const
bool VarNameCleaner::isUsedName(YulString const& _name) const
{
if (_name.empty() || m_dialect.builtin(_name) || m_usedNames.count(_name))
return true;
return false;
return isRestrictedIdentifier(m_dialect, _name) || m_usedNames.count(_name);
}
YulString VarNameCleaner::stripSuffix(YulString const& _name) const