MCPcopy Create free account
hub / github.com/KDAB/codebrowser / BrowserDiagnosticClient

Class BrowserDiagnosticClient

generator/main.cpp:118–145  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

116};
117
118struct BrowserDiagnosticClient : clang::DiagnosticConsumer {
119 Annotator &annotator;
120 BrowserDiagnosticClient(Annotator &fm) : annotator(fm) {}
121
122 virtual void HandleDiagnostic(clang::DiagnosticsEngine::Level DiagLevel, const clang::Diagnostic& Info) override {
123 std::string clas;
124 llvm::SmallString<1000> diag;
125 Info.FormatDiagnostic(diag);
126
127 switch(DiagLevel) {
128 case clang::DiagnosticsEngine::Fatal:
129 std::cerr << "FATAL ";
130 LLVM_FALLTHROUGH;
131 case clang::DiagnosticsEngine::Error:
132 std::cerr << "Error: " << locationToString(Info.getLocation(), annotator.getSourceMgr())
133 << ": " << diag.c_str() << std::endl;
134 clas = "error";
135 break;
136 case clang::DiagnosticsEngine::Warning:
137 clas = "warning";
138 break;
139 default:
140 return;
141 }
142 clang::SourceRange Range = Info.getLocation();
143 annotator.reportDiagnostic(Range, diag.c_str(), clas);
144 }
145};
146
147class BrowserASTConsumer : public clang::ASTConsumer
148{

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected