| Index: tools/clang/BindMigrate/DiagnosticEmitter.cpp
|
| diff --git a/tools/clang/BindMigrate/DiagnosticEmitter.cpp b/tools/clang/BindMigrate/DiagnosticEmitter.cpp
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..106176dde30fe7956aa8f6869e9f91c8ab8c7077
|
| --- /dev/null
|
| +++ b/tools/clang/BindMigrate/DiagnosticEmitter.cpp
|
| @@ -0,0 +1,39 @@
|
| +// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "DiagnosticEmitter.h"
|
| +
|
| +#include "clang/Basic/Diagnostic.h"
|
| +#include "clang/Frontend/CompilerInstance.h"
|
| +
|
| +namespace clang {
|
| +
|
| +DiagnosticEmitter::DiagnosticEmitter(CompilerInstance* instance,
|
| + const std::string& name)
|
| + : instance_(instance),
|
| + diagnostic_(&instance_->getDiagnostics()) {
|
| +}
|
| +
|
| +void DiagnosticEmitter::EmitWarning(SourceLocation loc,
|
| + const char* raw_error) {
|
| + FullSourceLoc full(loc, instance_->getSourceManager());
|
| + std::string err(name_);
|
| + err += raw_error;
|
| + Diagnostic::Level level =
|
| + diagnostic_->getWarningsAsErrors() ?
|
| + Diagnostic::Error :
|
| + Diagnostic::Warning;
|
| + unsigned id = diagnostic_->getCustomDiagID(level, err);
|
| + diagnostic_->Report(full, id).Emit();
|
| +}
|
| +
|
| +void DiagnosticEmitter::EmitError(SourceLocation loc, const char* raw_error) {
|
| + FullSourceLoc full(loc, instance_->getSourceManager());
|
| + std::string err(name_);
|
| + err += raw_error;
|
| + unsigned id = diagnostic_->getCustomDiagID(Diagnostic::Error, err);
|
| + diagnostic_->Report(full, id).Emit();
|
| +}
|
| +
|
| +} // namespace clang
|
|
|