本文整理汇总了C++中llvm::OwningPtr::HandleDiagnostic方法的典型用法代码示例。如果您正苦于以下问题:C++ OwningPtr::HandleDiagnostic方法的具体用法?C++ OwningPtr::HandleDiagnostic怎么用?C++ OwningPtr::HandleDiagnostic使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类llvm::OwningPtr
的用法示例。
在下文中一共展示了OwningPtr::HandleDiagnostic方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: HandleDiagnostic
void HandleDiagnostic(clang::DiagnosticsEngine::Level DiagLevel, const clang::Diagnostic& Info) override {
/* Moc ignores most of the errors since it even can operate on non self-contained headers.
* So try to change errors into warning.
*/
auto DiagId = Info.getID();
auto Cat = Info.getDiags()->getDiagnosticIDs()->getCategoryNumberForDiag(DiagId);
bool ShouldReset = false;
if (DiagLevel >= clang::DiagnosticsEngine::Error ) {
if (Cat == 2 || Cat == 4
|| DiagId == clang::diag::err_param_redefinition
|| DiagId == clang::diag::err_pp_expr_bad_token_binop ) {
if (!HadRealError)
ShouldReset = true;
DiagLevel = clang::DiagnosticsEngine::Warning;
} else {
HadRealError++;
}
}
DiagnosticConsumer::HandleDiagnostic(DiagLevel, Info);
Proxy->HandleDiagnostic(DiagLevel, Info);
if (ShouldReset) {
// FIXME: is there another way to ignore errors?
const_cast<clang::DiagnosticsEngine *>(Info.getDiags())->Reset();
}
}