summaryrefslogtreecommitdiff
path: root/tools/diagtool
diff options
context:
space:
mode:
Diffstat (limited to 'tools/diagtool')
-rw-r--r--tools/diagtool/DiagnosticNames.cpp4
-rw-r--r--tools/diagtool/DiagnosticNames.h11
-rw-r--r--tools/diagtool/TreeView.cpp3
3 files changed, 9 insertions, 9 deletions
diff --git a/tools/diagtool/DiagnosticNames.cpp b/tools/diagtool/DiagnosticNames.cpp
index fa510eb6ec..34c3229c6e 100644
--- a/tools/diagtool/DiagnosticNames.cpp
+++ b/tools/diagtool/DiagnosticNames.cpp
@@ -73,6 +73,10 @@ static const GroupRecord OptionTable[] = {
#undef GET_DIAG_TABLE
};
+llvm::StringRef GroupRecord::getName() const {
+ return StringRef(DiagGroupNames + NameOffset + 1, DiagGroupNames[NameOffset]);
+}
+
GroupRecord::subgroup_iterator GroupRecord::subgroup_begin() const {
return DiagSubGroups + SubGroups;
}
diff --git a/tools/diagtool/DiagnosticNames.h b/tools/diagtool/DiagnosticNames.h
index 957a1818e8..a3321fa681 100644
--- a/tools/diagtool/DiagnosticNames.h
+++ b/tools/diagtool/DiagnosticNames.h
@@ -35,14 +35,11 @@ namespace diagtool {
struct GroupRecord {
- const char *NameStr;
- uint16_t NameLen;
+ uint16_t NameOffset;
uint16_t Members;
uint16_t SubGroups;
- llvm::StringRef getName() const {
- return llvm::StringRef(NameStr, NameLen);
- }
+ llvm::StringRef getName() const;
template<typename RecordType>
class group_iterator {
@@ -94,8 +91,8 @@ namespace diagtool {
diagnostics_iterator diagnostics_begin() const;
diagnostics_iterator diagnostics_end() const;
- bool operator<(const GroupRecord &Other) const {
- return getName() < Other.getName();
+ bool operator<(llvm::StringRef Other) const {
+ return getName() < Other;
}
};
diff --git a/tools/diagtool/TreeView.cpp b/tools/diagtool/TreeView.cpp
index 10809c1d8d..fd548ef011 100644
--- a/tools/diagtool/TreeView.cpp
+++ b/tools/diagtool/TreeView.cpp
@@ -99,9 +99,8 @@ static int showGroup(llvm::raw_ostream &out, StringRef RootGroup,
return 1;
}
- GroupRecord Key = { RootGroup.data(), (uint16_t)RootGroup.size(), 0, 0 };
const GroupRecord *Found =
- std::lower_bound(AllGroups.begin(), AllGroups.end(), Key);
+ std::lower_bound(AllGroups.begin(), AllGroups.end(), RootGroup);
if (Found == AllGroups.end() || Found->getName() != RootGroup) {
llvm::errs() << "No such diagnostic group exists\n";