diaggroup categories should take precedence over diag-specific groups.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104567 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2010-05-24 21:55:47 +00:00
parent f27462eb29
commit ec5a0b336a

View File

@ -70,15 +70,16 @@ getCategoryFromDiagGroup(const Record *Group,
/// lives in.
static std::string getDiagnosticCategory(const Record *R,
DiagGroupParentMap &DiagGroupParents) {
// If the diagnostic is in a group, and that group has a category, use it.
if (DefInit *Group = dynamic_cast<DefInit*>(R->getValueInit("Group"))) {
// Check the diagnostic's diag group for a category.
std::string CatName = getCategoryFromDiagGroup(Group->getDef(),
DiagGroupParents);
if (!CatName.empty()) return CatName;
}
// If the diagnostic itself has a category, get it.
std::string CatName = R->getValueAsString("CategoryName");
if (!CatName.empty()) return CatName;
DefInit *Group = dynamic_cast<DefInit*>(R->getValueInit("Group"));
if (Group == 0) return "";
// Check the diagnostic's diag group for a category.
return getCategoryFromDiagGroup(Group->getDef(), DiagGroupParents);
return R->getValueAsString("CategoryName");
}
namespace {