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();