Fix teardown bug for multiple files without pragma.
This previously caused a segmentation fault in llvm-rs-cc. We were
improperly using the DiagnosticsEngine after we had reset() everything.
Bug: 7202787
Change-Id: Ic8522566ef257e70f16caf34b89f6a8e012908c5
diff --git a/slang_rs_backend.cpp b/slang_rs_backend.cpp
index d0b067e..a1efad1 100644
--- a/slang_rs_backend.cpp
+++ b/slang_rs_backend.cpp
@@ -184,6 +184,16 @@
slangAssert(version == 1);
}
+ if (mContext->getReflectJavaPackageName().empty()) {
+ mDiagEngine.Report(
+ mSourceMgr.getLocForEndOfFile(mSourceMgr.getMainFileID()),
+ mDiagEngine.getCustomDiagID(clang::DiagnosticsEngine::Error,
+ "missing \"#pragma rs "
+ "java_package_name(com.foo.bar)\" "
+ "in source file"));
+ return;
+ }
+
// Create a static global destructor if necessary (to handle RS object
// runtime cleanup).
clang::FunctionDecl *FD = mRefCount.CreateStaticGlobalDtor();