-static void ProcessDiag(std::ostream& OS, const Record* DiagClass,
- const Record& R) {
-
- const Record* DiagKind = getDiagKind(DiagClass, R);
- if (!DiagKind)
- return;
-
- OS << "DIAG(" << R.getName() << ", ";
- EmitAllCaps(OS, DiagKind->getName());
-
- const RecordVal* Text = findRecordVal(R, "Text");
- assert(Text && "No 'Text' entry in Diagnostic.");
- const StringInit* TextVal = dynamic_cast<const StringInit*>(Text->getValue());
- assert(TextVal && "Value 'Text' must be a string.");
- OS << ", \"";
- EmitEscaped(OS, TextVal->getValue());
- OS << "\")\n";
-}
-
-void ClangDiagsDefsEmitter::run(std::ostream &OS) {
- const RecordVector &Diags = Records.getAllDerivedDefinitions("Diagnostic");
-
- const Record* DiagClass = Records.getClass("Diagnostic");
- assert(DiagClass && "No Diagnostic class defined.");
-