mirror of
https://github.com/RPCS3/llvm.git
synced 2025-02-11 13:29:36 +00:00
Issue a fatal error if the line doesn't have a regular expression.
Also a couple not-user-visible changes; using empty() instead of size(), and make inSection() not insert NULL Regex*'s into StringMap when doing a lookup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168833 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
90e11dc8ad
commit
7b09b97bdf
@ -33,7 +33,7 @@ namespace llvm {
|
||||
|
||||
BlackList::BlackList(const StringRef Path) {
|
||||
// Validate and open blacklist file.
|
||||
if (!Path.size()) return;
|
||||
if (Path.empty()) return;
|
||||
OwningPtr<MemoryBuffer> File;
|
||||
if (error_code EC = MemoryBuffer::getFile(Path, File)) {
|
||||
report_fatal_error("Can't open blacklist file: " + Path + ": " +
|
||||
@ -53,6 +53,10 @@ BlackList::BlackList(const StringRef Path) {
|
||||
std::pair<StringRef, StringRef> SplitLine = I->split(":");
|
||||
StringRef Prefix = SplitLine.first;
|
||||
std::string Regexp = SplitLine.second;
|
||||
if (Regexp.empty()) {
|
||||
// Missing ':' in the line.
|
||||
report_fatal_error("malformed blacklist line: " + SplitLine.first);
|
||||
}
|
||||
|
||||
// Replace * with .*
|
||||
for (size_t pos = 0; (pos = Regexp.find("*", pos)) != std::string::npos;
|
||||
@ -69,7 +73,7 @@ BlackList::BlackList(const StringRef Path) {
|
||||
}
|
||||
|
||||
// Add this regexp into the proper group by its prefix.
|
||||
if (Regexps[Prefix].size())
|
||||
if (!Regexps[Prefix].empty())
|
||||
Regexps[Prefix] += "|";
|
||||
Regexps[Prefix] += Regexp;
|
||||
}
|
||||
@ -110,10 +114,12 @@ bool BlackList::isInInit(const GlobalVariable &G) {
|
||||
inSection("global-init-type", GetGVTypeString(G)));
|
||||
}
|
||||
|
||||
bool BlackList::inSection(const StringRef Section,
|
||||
const StringRef Query) {
|
||||
Regex *FunctionRegex = Entries[Section];
|
||||
return FunctionRegex ? FunctionRegex->match(Query) : false;
|
||||
bool BlackList::inSection(const StringRef Section, const StringRef Query) {
|
||||
StringMap<Regex*>::iterator I = Entries.find(Section);
|
||||
if (I == Entries.end()) return false;
|
||||
|
||||
Regex *FunctionRegex = I->getValue();
|
||||
return FunctionRegex->match(Query);
|
||||
}
|
||||
|
||||
} // namespace llvm
|
||||
|
Loading…
x
Reference in New Issue
Block a user