use `emptyString` more consistently (#4034)
This commit is contained in:
parent
c36320747f
commit
c9c1f83a69
|
@ -1005,7 +1005,7 @@ int CppCheckExecutor::check_internal(CppCheck& cppcheck)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!settings.checkConfiguration) {
|
if (!settings.checkConfiguration) {
|
||||||
cppcheck.tooManyConfigsError("",0U);
|
cppcheck.tooManyConfigsError(emptyString,0U);
|
||||||
|
|
||||||
if (settings.checks.isEnabled(Checks::missingInclude) && (Preprocessor::missingIncludeFlag || Preprocessor::missingSystemIncludeFlag)) {
|
if (settings.checks.isEnabled(Checks::missingInclude) && (Preprocessor::missingIncludeFlag || Preprocessor::missingSystemIncludeFlag)) {
|
||||||
const std::list<ErrorMessage::FileLocation> callStack;
|
const std::list<ErrorMessage::FileLocation> callStack;
|
||||||
|
|
|
@ -179,7 +179,7 @@ struct Analyzer {
|
||||||
/// The condition that will be assumed during analysis
|
/// The condition that will be assumed during analysis
|
||||||
virtual void assume(const Token* tok, bool state, unsigned int flags = 0) = 0;
|
virtual void assume(const Token* tok, bool state, unsigned int flags = 0) = 0;
|
||||||
/// Return analyzer for expression at token
|
/// Return analyzer for expression at token
|
||||||
virtual ValuePtr<Analyzer> reanalyze(Token* tok, const std::string& msg = "") const = 0;
|
virtual ValuePtr<Analyzer> reanalyze(Token* tok, const std::string& msg = emptyString) const = 0;
|
||||||
virtual ~Analyzer() {}
|
virtual ~Analyzer() {}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -95,7 +95,7 @@ public:
|
||||||
void nullPointerError(const Token *tok) {
|
void nullPointerError(const Token *tok) {
|
||||||
ValueFlow::Value v(0);
|
ValueFlow::Value v(0);
|
||||||
v.setKnown();
|
v.setKnown();
|
||||||
nullPointerError(tok, "", &v, false);
|
nullPointerError(tok, emptyString, &v, false);
|
||||||
}
|
}
|
||||||
void nullPointerError(const Token *tok, const std::string &varname, const ValueFlow::Value* value, bool inconclusive);
|
void nullPointerError(const Token *tok, const std::string &varname, const ValueFlow::Value* value, bool inconclusive);
|
||||||
|
|
||||||
|
|
|
@ -3756,6 +3756,6 @@ void CheckOther::overlappingWriteUnion(const Token *tok)
|
||||||
|
|
||||||
void CheckOther::overlappingWriteFunction(const Token *tok)
|
void CheckOther::overlappingWriteFunction(const Token *tok)
|
||||||
{
|
{
|
||||||
const std::string funcname = tok ? tok->str() : "";
|
const std::string &funcname = tok ? tok->str() : emptyString;
|
||||||
reportError(tok, Severity::error, "overlappingWriteFunction", "Overlapping read/write in " + funcname + "() is undefined behavior");
|
reportError(tok, Severity::error, "overlappingWriteFunction", "Overlapping read/write in " + funcname + "() is undefined behavior");
|
||||||
}
|
}
|
||||||
|
|
|
@ -191,7 +191,7 @@ void CheckStl::outOfBounds()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static std::string indexValueString(const ValueFlow::Value& indexValue, const std::string& containerName = "")
|
static std::string indexValueString(const ValueFlow::Value& indexValue, const std::string& containerName = emptyString)
|
||||||
{
|
{
|
||||||
if (indexValue.isIteratorStartValue())
|
if (indexValue.isIteratorStartValue())
|
||||||
return "at position " + MathLib::toString(indexValue.intvalue) + " from the beginning";
|
return "at position " + MathLib::toString(indexValue.intvalue) + " from the beginning";
|
||||||
|
@ -2342,7 +2342,7 @@ void CheckStl::checkDereferenceInvalidIterator2()
|
||||||
outOfBoundsError(emptyAdvance,
|
outOfBoundsError(emptyAdvance,
|
||||||
lValue.tokvalue->expressionString(),
|
lValue.tokvalue->expressionString(),
|
||||||
cValue,
|
cValue,
|
||||||
advanceIndex ? advanceIndex->expressionString() : "",
|
advanceIndex ? advanceIndex->expressionString() : emptyString,
|
||||||
nullptr);
|
nullptr);
|
||||||
else
|
else
|
||||||
outOfBoundsError(tok, lValue.tokvalue->expressionString(), cValue, tok->expressionString(), &value);
|
outOfBoundsError(tok, lValue.tokvalue->expressionString(), cValue, tok->expressionString(), &value);
|
||||||
|
@ -2797,7 +2797,7 @@ void CheckStl::knownEmptyContainer()
|
||||||
const Token* contTok = splitTok->astOperand2();
|
const Token* contTok = splitTok->astOperand2();
|
||||||
if (!isKnownEmptyContainer(contTok))
|
if (!isKnownEmptyContainer(contTok))
|
||||||
continue;
|
continue;
|
||||||
knownEmptyContainerError(contTok, "");
|
knownEmptyContainerError(contTok, emptyString);
|
||||||
} else {
|
} else {
|
||||||
const std::vector<const Token *> args = getArguments(tok);
|
const std::vector<const Token *> args = getArguments(tok);
|
||||||
if (args.empty())
|
if (args.empty())
|
||||||
|
|
|
@ -268,8 +268,8 @@ private:
|
||||||
c.uselessCallsRemoveError(nullptr, "remove");
|
c.uselessCallsRemoveError(nullptr, "remove");
|
||||||
c.dereferenceInvalidIteratorError(nullptr, "i");
|
c.dereferenceInvalidIteratorError(nullptr, "i");
|
||||||
c.readingEmptyStlContainerError(nullptr);
|
c.readingEmptyStlContainerError(nullptr);
|
||||||
c.useStlAlgorithmError(nullptr, "");
|
c.useStlAlgorithmError(nullptr, emptyString);
|
||||||
c.knownEmptyContainerError(nullptr, "");
|
c.knownEmptyContainerError(nullptr, emptyString);
|
||||||
c.globalLockGuardError(nullptr);
|
c.globalLockGuardError(nullptr);
|
||||||
c.localMutexError(nullptr);
|
c.localMutexError(nullptr);
|
||||||
}
|
}
|
||||||
|
|
|
@ -636,7 +636,7 @@ bool CheckUninitVar::checkScopeForVariable(const Token *tok, const Variable& var
|
||||||
// Assert that the tokens are '} while ('
|
// Assert that the tokens are '} while ('
|
||||||
if (!Token::simpleMatch(tok, "} while (")) {
|
if (!Token::simpleMatch(tok, "} while (")) {
|
||||||
if (printDebug)
|
if (printDebug)
|
||||||
reportError(tok,Severity::debug,"","assertion failed '} while ('");
|
reportError(tok,Severity::debug,emptyString,"assertion failed '} while ('");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -232,7 +232,7 @@ static std::string getDumpFileName(const Settings& settings, const std::string&
|
||||||
if (!settings.dumpFile.empty())
|
if (!settings.dumpFile.empty())
|
||||||
return settings.dumpFile;
|
return settings.dumpFile;
|
||||||
if (!settings.dump && !settings.buildDir.empty())
|
if (!settings.dump && !settings.buildDir.empty())
|
||||||
return AnalyzerInformation::getAnalyzerInfoFile(settings.buildDir, filename, "") + ".dump";
|
return AnalyzerInformation::getAnalyzerInfoFile(settings.buildDir, filename, emptyString) + ".dump";
|
||||||
return filename + ".dump";
|
return filename + ".dump";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -432,7 +432,7 @@ unsigned int CppCheck::check(const std::string &path)
|
||||||
mErrorLogger.reportOut(std::string("Checking ") + path + "...", Color::FgGreen);
|
mErrorLogger.reportOut(std::string("Checking ") + path + "...", Color::FgGreen);
|
||||||
|
|
||||||
const std::string lang = Path::isCPP(path) ? "-x c++" : "-x c";
|
const std::string lang = Path::isCPP(path) ? "-x c++" : "-x c";
|
||||||
const std::string analyzerInfo = mSettings.buildDir.empty() ? std::string() : AnalyzerInformation::getAnalyzerInfoFile(mSettings.buildDir, path, "");
|
const std::string analyzerInfo = mSettings.buildDir.empty() ? std::string() : AnalyzerInformation::getAnalyzerInfoFile(mSettings.buildDir, path, emptyString);
|
||||||
const std::string clangcmd = analyzerInfo + ".clang-cmd";
|
const std::string clangcmd = analyzerInfo + ".clang-cmd";
|
||||||
const std::string clangStderr = analyzerInfo + ".clang-stderr";
|
const std::string clangStderr = analyzerInfo + ".clang-stderr";
|
||||||
const std::string clangAst = analyzerInfo + ".clang-ast";
|
const std::string clangAst = analyzerInfo + ".clang-ast";
|
||||||
|
@ -1586,10 +1586,10 @@ void CppCheck::getErrorMessages()
|
||||||
s.severity.enable(Severity::performance);
|
s.severity.enable(Severity::performance);
|
||||||
s.severity.enable(Severity::information);
|
s.severity.enable(Severity::information);
|
||||||
|
|
||||||
purgedConfigurationMessage("","");
|
purgedConfigurationMessage(emptyString,emptyString);
|
||||||
|
|
||||||
mTooManyConfigs = true;
|
mTooManyConfigs = true;
|
||||||
tooManyConfigsError("",0U);
|
tooManyConfigsError(emptyString,0U);
|
||||||
|
|
||||||
// call all "getErrorMessages" in all registered Check classes
|
// call all "getErrorMessages" in all registered Check classes
|
||||||
for (std::list<Check *>::const_iterator it = Check::instances().begin(); it != Check::instances().end(); ++it)
|
for (std::list<Check *>::const_iterator it = Check::instances().begin(); it != Check::instances().end(); ++it)
|
||||||
|
@ -1615,7 +1615,7 @@ void CppCheck::analyseClangTidy(const ImportProject::FileSettings &fileSettings)
|
||||||
|
|
||||||
const std::string args = "-quiet -checks=*,-clang-analyzer-*,-llvm* \"" + fileSettings.filename + "\" -- " + allIncludes + allDefines;
|
const std::string args = "-quiet -checks=*,-clang-analyzer-*,-llvm* \"" + fileSettings.filename + "\" -- " + allIncludes + allDefines;
|
||||||
std::string output;
|
std::string output;
|
||||||
if (!mExecuteCommand(exe, split(args), "", &output)) {
|
if (!mExecuteCommand(exe, split(args), emptyString, &output)) {
|
||||||
std::cerr << "Failed to execute '" << exe << "'" << std::endl;
|
std::cerr << "Failed to execute '" << exe << "'" << std::endl;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1625,7 +1625,7 @@ void CppCheck::analyseClangTidy(const ImportProject::FileSettings &fileSettings)
|
||||||
std::string line;
|
std::string line;
|
||||||
|
|
||||||
if (!mSettings.buildDir.empty()) {
|
if (!mSettings.buildDir.empty()) {
|
||||||
const std::string analyzerInfoFile = AnalyzerInformation::getAnalyzerInfoFile(mSettings.buildDir, fileSettings.filename, "");
|
const std::string analyzerInfoFile = AnalyzerInformation::getAnalyzerInfoFile(mSettings.buildDir, fileSettings.filename, emptyString);
|
||||||
std::ofstream fcmd(analyzerInfoFile + ".clang-tidy-cmd");
|
std::ofstream fcmd(analyzerInfoFile + ".clang-tidy-cmd");
|
||||||
fcmd << istr.str();
|
fcmd << istr.str();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1183,7 +1183,7 @@ bool ImportProject::importCppcheckGuiProject(std::istream &istr, Settings *setti
|
||||||
suppressions.push_back(s);
|
suppressions.push_back(s);
|
||||||
}
|
}
|
||||||
} else if (strcmp(node->Name(), CppcheckXml::VSConfigurationElementName) == 0)
|
} else if (strcmp(node->Name(), CppcheckXml::VSConfigurationElementName) == 0)
|
||||||
guiProject.checkVsConfigs = readXmlStringList(node, "", CppcheckXml::VSConfigurationName, nullptr);
|
guiProject.checkVsConfigs = readXmlStringList(node, emptyString, CppcheckXml::VSConfigurationName, nullptr);
|
||||||
else if (strcmp(node->Name(), CppcheckXml::PlatformElementName) == 0)
|
else if (strcmp(node->Name(), CppcheckXml::PlatformElementName) == 0)
|
||||||
guiProject.platform = node->GetText();
|
guiProject.platform = node->GetText();
|
||||||
else if (strcmp(node->Name(), CppcheckXml::AnalyzeAllVsConfigsElementName) == 0)
|
else if (strcmp(node->Name(), CppcheckXml::AnalyzeAllVsConfigsElementName) == 0)
|
||||||
|
@ -1191,11 +1191,11 @@ bool ImportProject::importCppcheckGuiProject(std::istream &istr, Settings *setti
|
||||||
else if (strcmp(node->Name(), CppcheckXml::Parser) == 0)
|
else if (strcmp(node->Name(), CppcheckXml::Parser) == 0)
|
||||||
temp.clang = true;
|
temp.clang = true;
|
||||||
else if (strcmp(node->Name(), CppcheckXml::AddonsElementName) == 0)
|
else if (strcmp(node->Name(), CppcheckXml::AddonsElementName) == 0)
|
||||||
temp.addons = readXmlStringList(node, "", CppcheckXml::AddonElementName, nullptr);
|
temp.addons = readXmlStringList(node, emptyString, CppcheckXml::AddonElementName, nullptr);
|
||||||
else if (strcmp(node->Name(), CppcheckXml::TagsElementName) == 0)
|
else if (strcmp(node->Name(), CppcheckXml::TagsElementName) == 0)
|
||||||
node->Attribute(CppcheckXml::TagElementName); // FIXME: Write some warning
|
node->Attribute(CppcheckXml::TagElementName); // FIXME: Write some warning
|
||||||
else if (strcmp(node->Name(), CppcheckXml::ToolsElementName) == 0) {
|
else if (strcmp(node->Name(), CppcheckXml::ToolsElementName) == 0) {
|
||||||
const std::list<std::string> toolList = readXmlStringList(node, "", CppcheckXml::ToolElementName, nullptr);
|
const std::list<std::string> toolList = readXmlStringList(node, emptyString, CppcheckXml::ToolElementName, nullptr);
|
||||||
for (const std::string &toolName : toolList) {
|
for (const std::string &toolName : toolList) {
|
||||||
if (toolName == std::string(CppcheckXml::ClangTidy))
|
if (toolName == std::string(CppcheckXml::ClangTidy))
|
||||||
temp.clangTidy = true;
|
temp.clangTidy = true;
|
||||||
|
|
|
@ -550,7 +550,7 @@ public:
|
||||||
*/
|
*/
|
||||||
std::string getFunctionName(const Token *ftok) const;
|
std::string getFunctionName(const Token *ftok) const;
|
||||||
|
|
||||||
static bool isContainerYield(const Token * const cond, Library::Container::Yield y, const std::string& fallback="");
|
static bool isContainerYield(const Token * const cond, Library::Container::Yield y, const std::string& fallback=emptyString);
|
||||||
|
|
||||||
/** Suppress/check a type */
|
/** Suppress/check a type */
|
||||||
enum class TypeCheck { def, check, suppress };
|
enum class TypeCheck { def, check, suppress };
|
||||||
|
|
|
@ -128,7 +128,7 @@ std::string Path::getCurrentPath()
|
||||||
#endif
|
#endif
|
||||||
return std::string(currentPath);
|
return std::string(currentPath);
|
||||||
|
|
||||||
return emptyString;
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Path::isAbsolute(const std::string& path)
|
bool Path::isAbsolute(const std::string& path)
|
||||||
|
|
|
@ -489,7 +489,7 @@ static void getConfigs(const simplecpp::TokenList &tokens, std::set<std::string>
|
||||||
} else if (cmdtok->str() == "error") {
|
} else if (cmdtok->str() == "error") {
|
||||||
if (!configs_ifndef.empty() && !configs_ifndef.back().empty()) {
|
if (!configs_ifndef.empty() && !configs_ifndef.back().empty()) {
|
||||||
if (configs_ifndef.size() == 1U)
|
if (configs_ifndef.size() == 1U)
|
||||||
ret.erase("");
|
ret.erase(emptyString);
|
||||||
std::vector<std::string> configs(configs_if);
|
std::vector<std::string> configs(configs_if);
|
||||||
configs.push_back(configs_ifndef.back());
|
configs.push_back(configs_ifndef.back());
|
||||||
ret.erase(cfg(configs, userDefines));
|
ret.erase(cfg(configs, userDefines));
|
||||||
|
|
|
@ -5548,7 +5548,7 @@ const Type* Scope::findType(const std::string & name) const
|
||||||
return (*it).second;
|
return (*it).second;
|
||||||
|
|
||||||
// is type defined in anonymous namespace..
|
// is type defined in anonymous namespace..
|
||||||
it = definedTypesMap.find("");
|
it = definedTypesMap.find(emptyString);
|
||||||
if (it != definedTypesMap.end()) {
|
if (it != definedTypesMap.end()) {
|
||||||
for (const Scope *scope : nestedList) {
|
for (const Scope *scope : nestedList) {
|
||||||
if (scope->className.empty() && (scope->type == eNamespace || scope->isClassOrStructOrUnion())) {
|
if (scope->className.empty() && (scope->type == eNamespace || scope->isClassOrStructOrUnion())) {
|
||||||
|
|
|
@ -961,11 +961,11 @@ void TemplateSimplifier::getTemplateInstantiations()
|
||||||
std::string::size_type offset = 0;
|
std::string::size_type offset = 0;
|
||||||
std::string::size_type pos = 0;
|
std::string::size_type pos = 0;
|
||||||
while ((pos = nameSpace.substr(offset).find(' ')) != std::string::npos) {
|
while ((pos = nameSpace.substr(offset).find(' ')) != std::string::npos) {
|
||||||
qualificationTok->insertToken(nameSpace.substr(offset, pos), "", true);
|
qualificationTok->insertToken(nameSpace.substr(offset, pos), emptyString, true);
|
||||||
offset = offset + pos + 1;
|
offset = offset + pos + 1;
|
||||||
}
|
}
|
||||||
qualificationTok->insertToken(nameSpace.substr(offset), "", true);
|
qualificationTok->insertToken(nameSpace.substr(offset), emptyString, true);
|
||||||
qualificationTok->insertToken("::", "", true);
|
qualificationTok->insertToken("::", emptyString, true);
|
||||||
addInstantiation(tok, it1->scope());
|
addInstantiation(tok, it1->scope());
|
||||||
found = true;
|
found = true;
|
||||||
break;
|
break;
|
||||||
|
@ -1530,7 +1530,7 @@ void TemplateSimplifier::addNamespace(const TokenAndName &templateDeclaration, c
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (insert)
|
if (insert)
|
||||||
mTokenList.back()->tokAt(offset)->insertToken(token, "");
|
mTokenList.back()->tokAt(offset)->insertToken(token, emptyString);
|
||||||
else
|
else
|
||||||
mTokenList.addtoken(token, tok->linenr(), tok->column(), tok->fileIndex());
|
mTokenList.addtoken(token, tok->linenr(), tok->column(), tok->fileIndex());
|
||||||
}
|
}
|
||||||
|
@ -1541,10 +1541,10 @@ void TemplateSimplifier::addNamespace(const TokenAndName &templateDeclaration, c
|
||||||
if (token != tokStart->str() || tok->strAt(-1) != "::") {
|
if (token != tokStart->str() || tok->strAt(-1) != "::") {
|
||||||
if (insert) {
|
if (insert) {
|
||||||
if (!inTemplate)
|
if (!inTemplate)
|
||||||
mTokenList.back()->tokAt(offset)->insertToken(templateDeclaration.scope().substr(start), "");
|
mTokenList.back()->tokAt(offset)->insertToken(templateDeclaration.scope().substr(start), emptyString);
|
||||||
else
|
else
|
||||||
mTokenList.back()->tokAt(offset)->str(mTokenList.back()->strAt(offset) + templateDeclaration.scope().substr(start));
|
mTokenList.back()->tokAt(offset)->str(mTokenList.back()->strAt(offset) + templateDeclaration.scope().substr(start));
|
||||||
mTokenList.back()->tokAt(offset)->insertToken("::", "");
|
mTokenList.back()->tokAt(offset)->insertToken("::", emptyString);
|
||||||
} else {
|
} else {
|
||||||
if (!inTemplate)
|
if (!inTemplate)
|
||||||
mTokenList.addtoken(templateDeclaration.scope().substr(start), tok->linenr(), tok->column(), tok->fileIndex());
|
mTokenList.addtoken(templateDeclaration.scope().substr(start), tok->linenr(), tok->column(), tok->fileIndex());
|
||||||
|
@ -1596,9 +1596,9 @@ void TemplateSimplifier::expandTemplate(
|
||||||
|
|
||||||
// add forward declarations
|
// add forward declarations
|
||||||
if (copy && isClass) {
|
if (copy && isClass) {
|
||||||
templateDeclaration.token()->insertToken(templateDeclarationToken->strAt(1), "", true);
|
templateDeclaration.token()->insertToken(templateDeclarationToken->strAt(1), emptyString, true);
|
||||||
templateDeclaration.token()->insertToken(newName, "", true);
|
templateDeclaration.token()->insertToken(newName, emptyString, true);
|
||||||
templateDeclaration.token()->insertToken(";", "", true);
|
templateDeclaration.token()->insertToken(";", emptyString, true);
|
||||||
} else if ((isFunction && (copy || isSpecialization)) ||
|
} else if ((isFunction && (copy || isSpecialization)) ||
|
||||||
(isVariable && !isSpecialization) ||
|
(isVariable && !isSpecialization) ||
|
||||||
(isClass && isSpecialization && mTemplateSpecializationMap.find(templateDeclaration.token()) != mTemplateSpecializationMap.end())) {
|
(isClass && isSpecialization && mTemplateSpecializationMap.find(templateDeclaration.token()) != mTemplateSpecializationMap.end())) {
|
||||||
|
@ -1662,7 +1662,7 @@ void TemplateSimplifier::expandTemplate(
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isStatic) {
|
if (isStatic) {
|
||||||
dst->insertToken("static", "", true);
|
dst->insertToken("static", emptyString, true);
|
||||||
if (start) {
|
if (start) {
|
||||||
dst->previous()->linenr(start->linenr());
|
dst->previous()->linenr(start->linenr());
|
||||||
dst->previous()->column(start->column());
|
dst->previous()->column(start->column());
|
||||||
|
@ -1745,13 +1745,13 @@ void TemplateSimplifier::expandTemplate(
|
||||||
!(templateDeclaration.isFunction() && templateDeclaration.scope().empty() &&
|
!(templateDeclaration.isFunction() && templateDeclaration.scope().empty() &&
|
||||||
(start->strAt(-1) == "." || Token::simpleMatch(start->tokAt(-2), ". template")))) {
|
(start->strAt(-1) == "." || Token::simpleMatch(start->tokAt(-2), ". template")))) {
|
||||||
if (start->strAt(1) != "<" || Token::Match(start, newName.c_str()) || !inAssignment) {
|
if (start->strAt(1) != "<" || Token::Match(start, newName.c_str()) || !inAssignment) {
|
||||||
dst->insertToken(newName, "", true);
|
dst->insertToken(newName, emptyString, true);
|
||||||
dst->previous()->linenr(start->linenr());
|
dst->previous()->linenr(start->linenr());
|
||||||
dst->previous()->column(start->column());
|
dst->previous()->column(start->column());
|
||||||
if (start->strAt(1) == "<")
|
if (start->strAt(1) == "<")
|
||||||
start = start->next()->findClosingBracket();
|
start = start->next()->findClosingBracket();
|
||||||
} else {
|
} else {
|
||||||
dst->insertToken(start->str(), "", true);
|
dst->insertToken(start->str(), emptyString, true);
|
||||||
dst->previous()->linenr(start->linenr());
|
dst->previous()->linenr(start->linenr());
|
||||||
dst->previous()->column(start->column());
|
dst->previous()->column(start->column());
|
||||||
newInstantiations.emplace_back(dst->previous(), templateDeclaration.scope());
|
newInstantiations.emplace_back(dst->previous(), templateDeclaration.scope());
|
||||||
|
@ -1774,7 +1774,7 @@ void TemplateSimplifier::expandTemplate(
|
||||||
for (const auto & inst : mTemplateInstantiations) {
|
for (const auto & inst : mTemplateInstantiations) {
|
||||||
if (Token::simpleMatch(inst.token(), name.c_str(), name.size())) {
|
if (Token::simpleMatch(inst.token(), name.c_str(), name.size())) {
|
||||||
// use the instantiated name
|
// use the instantiated name
|
||||||
dst->insertToken(name, "", true);
|
dst->insertToken(name, emptyString, true);
|
||||||
dst->previous()->linenr(start->linenr());
|
dst->previous()->linenr(start->linenr());
|
||||||
dst->previous()->column(start->column());
|
dst->previous()->column(start->column());
|
||||||
start = closing;
|
start = closing;
|
||||||
|
@ -1820,7 +1820,7 @@ void TemplateSimplifier::expandTemplate(
|
||||||
|
|
||||||
start = start->next();
|
start = start->next();
|
||||||
}
|
}
|
||||||
dst->insertToken(";", "", true);
|
dst->insertToken(";", emptyString, true);
|
||||||
dst->previous()->linenr(dst->tokAt(-2)->linenr());
|
dst->previous()->linenr(dst->tokAt(-2)->linenr());
|
||||||
dst->previous()->column(dst->tokAt(-2)->column() + 1);
|
dst->previous()->column(dst->tokAt(-2)->column() + 1);
|
||||||
|
|
||||||
|
|
|
@ -485,7 +485,7 @@ private:
|
||||||
void printOut(
|
void printOut(
|
||||||
const TokenAndName &tokenAndName,
|
const TokenAndName &tokenAndName,
|
||||||
const std::string &indent = " ") const;
|
const std::string &indent = " ") const;
|
||||||
void printOut(const std::string &text = "") const;
|
void printOut(const std::string &text = emptyString) const;
|
||||||
|
|
||||||
Tokenizer *mTokenizer;
|
Tokenizer *mTokenizer;
|
||||||
TokenList &mTokenList;
|
TokenList &mTokenList;
|
||||||
|
|
|
@ -715,12 +715,12 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
bool isCChar() const {
|
bool isCChar() const {
|
||||||
return (((mTokType == eString) && isPrefixStringCharLiteral(mStr, '"', "")) ||
|
return (((mTokType == eString) && isPrefixStringCharLiteral(mStr, '"', emptyString)) ||
|
||||||
((mTokType == eChar) && isPrefixStringCharLiteral(mStr, '\'', "") && mStr.length() == 3));
|
((mTokType == eChar) && isPrefixStringCharLiteral(mStr, '\'', emptyString) && mStr.length() == 3));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool isCMultiChar() const {
|
bool isCMultiChar() const {
|
||||||
return (((mTokType == eChar) && isPrefixStringCharLiteral(mStr, '\'', "")) &&
|
return (((mTokType == eChar) && isPrefixStringCharLiteral(mStr, '\'', emptyString)) &&
|
||||||
(mStr.length() > 3));
|
(mStr.length() > 3));
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -2016,7 +2016,7 @@ namespace {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!added)
|
if (!added)
|
||||||
*scopeInfo = (*scopeInfo)->addChild(ScopeInfo3::Other, "", tok, tok->link());
|
*scopeInfo = (*scopeInfo)->addChild(ScopeInfo3::Other, emptyString, tok, tok->link());
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -2371,7 +2371,7 @@ bool Tokenizer::simplifyUsing()
|
||||||
structEnd = structEnd->link();
|
structEnd = structEnd->link();
|
||||||
|
|
||||||
// add ';' after end of struct
|
// add ';' after end of struct
|
||||||
structEnd->insertToken(";", "");
|
structEnd->insertToken(";", emptyString);
|
||||||
|
|
||||||
// add name for anonymous struct
|
// add name for anonymous struct
|
||||||
if (!hasName) {
|
if (!hasName) {
|
||||||
|
@ -2381,8 +2381,8 @@ bool Tokenizer::simplifyUsing()
|
||||||
else
|
else
|
||||||
newName = "Unnamed" + MathLib::toString(mUnnamedCount++);
|
newName = "Unnamed" + MathLib::toString(mUnnamedCount++);
|
||||||
TokenList::copyTokens(structEnd->next(), tok, start);
|
TokenList::copyTokens(structEnd->next(), tok, start);
|
||||||
structEnd->tokAt(5)->insertToken(newName, "");
|
structEnd->tokAt(5)->insertToken(newName, emptyString);
|
||||||
start->insertToken(newName, "");
|
start->insertToken(newName, emptyString);
|
||||||
} else
|
} else
|
||||||
TokenList::copyTokens(structEnd->next(), tok, start->next());
|
TokenList::copyTokens(structEnd->next(), tok, start->next());
|
||||||
|
|
||||||
|
@ -3336,7 +3336,7 @@ void Tokenizer::calculateScopes()
|
||||||
tok->scopeInfo(nullptr);
|
tok->scopeInfo(nullptr);
|
||||||
|
|
||||||
std::string nextScopeNameAddition;
|
std::string nextScopeNameAddition;
|
||||||
std::shared_ptr<ScopeInfo2> primaryScope = std::make_shared<ScopeInfo2>("", nullptr);
|
std::shared_ptr<ScopeInfo2> primaryScope = std::make_shared<ScopeInfo2>(emptyString, nullptr);
|
||||||
list.front()->scopeInfo(primaryScope);
|
list.front()->scopeInfo(primaryScope);
|
||||||
|
|
||||||
for (Token* tok = list.front(); tok; tok = tok->next()) {
|
for (Token* tok = list.front(); tok; tok = tok->next()) {
|
||||||
|
|
|
@ -442,7 +442,7 @@ private:
|
||||||
public:
|
public:
|
||||||
|
|
||||||
/** Syntax error */
|
/** Syntax error */
|
||||||
NORETURN void syntaxError(const Token *tok, const std::string &code = "") const;
|
NORETURN void syntaxError(const Token *tok, const std::string &code = emptyString) const;
|
||||||
|
|
||||||
/** Syntax error. Unmatched character. */
|
/** Syntax error. Unmatched character. */
|
||||||
NORETURN void unmatchedToken(const Token *tok) const;
|
NORETURN void unmatchedToken(const Token *tok) const;
|
||||||
|
|
|
@ -512,7 +512,7 @@ int main(int argc, char **argv)
|
||||||
compilefiles(fout, libfiles, "${INCLUDE_FOR_LIB}");
|
compilefiles(fout, libfiles, "${INCLUDE_FOR_LIB}");
|
||||||
compilefiles(fout, clifiles, "${INCLUDE_FOR_CLI}");
|
compilefiles(fout, clifiles, "${INCLUDE_FOR_CLI}");
|
||||||
compilefiles(fout, testfiles, "${INCLUDE_FOR_TEST}");
|
compilefiles(fout, testfiles, "${INCLUDE_FOR_TEST}");
|
||||||
compilefiles(fout, extfiles, "");
|
compilefiles(fout, extfiles, emptyString);
|
||||||
compilefiles(fout, toolsfiles, "${INCLUDE_FOR_LIB}");
|
compilefiles(fout, toolsfiles, "${INCLUDE_FOR_LIB}");
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue