aboutsummaryrefslogtreecommitdiffstats
path: root/slang_diagnostic_buffer.cpp
diff options
context:
space:
mode:
authorLogan Chien <loganchien@google.com>2011-10-21 15:39:28 +0800
committerLogan Chien <loganchien@google.com>2011-10-22 12:01:41 +0800
commit9207a2e495c8363606861e4f034504ec5c153dab (patch)
tree55f8301585245ad07adb89f63bd27082c5c0aeba /slang_diagnostic_buffer.cpp
parent18ca8cfc2b9e60e4aa4b4269e2b02c5f6f245822 (diff)
downloadandroid_frameworks_compile_slang-9207a2e495c8363606861e4f034504ec5c153dab.tar.gz
android_frameworks_compile_slang-9207a2e495c8363606861e4f034504ec5c153dab.tar.bz2
android_frameworks_compile_slang-9207a2e495c8363606861e4f034504ec5c153dab.zip
Apply changes to migrate to LLVM upstream Oct 20th 2011.
- StructType::isAnonymous is renamed to StructType::isLiteral. - PassManagerBuilder has been moved from llvm/Support/PassManagerBuilder.h to llvm/Transforms/IPO/PassManagerBuilder.h - Include llvm/Transforms/IPO.h for llvm::createInternalizePass. - clang::DiagClient has be renamed to clang::DiagnosticConsumer. Besides, we have to implement one additional pure virtual method 'clone' for create a clone of slang::DiagnosticBuffer. - llvm::Linker::LinkModules comes with one additional parameter. Passing llvm::Linker::DestroySource should be equivalent to the old code we were using. - slang::Slang is now derived from clang::ModuleLoader and implemented loadModule pure virtual method (though we will always return NULL.) - clang::Preprocessor is taking one additional parameter for clang::ModuleLoader. - clang::Diagnostic has been changed. A lot of the method has been moved to clang::DiagnosticsEngine, and we can no longer 'Report' a diagnostic from clang::Diagnostic. We have to use clang::DiagnosticEngine instead. - llvm::setCodeModel has been removed. Change-Id: I1f2a4cbeaf61a8ed1d0d635a5a0e1baa90d99d07
Diffstat (limited to 'slang_diagnostic_buffer.cpp')
-rw-r--r--slang_diagnostic_buffer.cpp38
1 files changed, 22 insertions, 16 deletions
diff --git a/slang_diagnostic_buffer.cpp b/slang_diagnostic_buffer.cpp
index 6b70cfe..ed6f303 100644
--- a/slang_diagnostic_buffer.cpp
+++ b/slang_diagnostic_buffer.cpp
@@ -25,14 +25,23 @@
namespace slang {
-DiagnosticBuffer::DiagnosticBuffer() : mSOS(NULL) {
- mSOS = new llvm::raw_string_ostream(mDiags);
- return;
+DiagnosticBuffer::DiagnosticBuffer()
+: mSOS(new llvm::raw_string_ostream(mDiags)) {
}
-void DiagnosticBuffer::HandleDiagnostic(clang::Diagnostic::Level DiagLevel,
- const clang::DiagnosticInfo &Info) {
- const clang::SourceLocation &SrcLoc = Info.getLocation();
+DiagnosticBuffer::DiagnosticBuffer(DiagnosticBuffer const &src)
+: mDiags(src.mDiags), mSOS(new llvm::raw_string_ostream(mDiags)) {
+}
+
+DiagnosticBuffer::~DiagnosticBuffer() {
+}
+
+void DiagnosticBuffer::HandleDiagnostic(
+ clang::DiagnosticsEngine::Level DiagLevel,
+ clang::Diagnostic const &Info) {
+
+ clang::SourceLocation const &SrcLoc = Info.getLocation();
+
// 100 is enough for storing general diagnosis message
llvm::SmallString<100> Buf;
@@ -42,19 +51,19 @@ void DiagnosticBuffer::HandleDiagnostic(clang::Diagnostic::Level DiagLevel,
}
switch (DiagLevel) {
- case clang::Diagnostic::Note: {
+ case clang::DiagnosticsEngine::Note: {
(*mSOS) << "note: ";
break;
}
- case clang::Diagnostic::Warning: {
+ case clang::DiagnosticsEngine::Warning: {
(*mSOS) << "warning: ";
break;
}
- case clang::Diagnostic::Error: {
+ case clang::DiagnosticsEngine::Error: {
(*mSOS) << "error: ";
break;
}
- case clang::Diagnostic::Fatal: {
+ case clang::DiagnosticsEngine::Fatal: {
(*mSOS) << "fatal: ";
break;
}
@@ -63,16 +72,13 @@ void DiagnosticBuffer::HandleDiagnostic(clang::Diagnostic::Level DiagLevel,
}
}
-
Info.FormatDiagnostic(Buf);
(*mSOS) << Buf.str() << '\n';
-
- return;
}
-DiagnosticBuffer::~DiagnosticBuffer() {
- delete mSOS;
- return;
+clang::DiagnosticConsumer *
+DiagnosticBuffer::clone(clang::DiagnosticsEngine &Diags) const {
+ return new DiagnosticBuffer(*this);
}
} // namespace slang