Suppress a MSVC warning complaining about the code working as intended.
[oota-llvm.git] / lib / Support / Process.cpp
index 8d1b64897c838adf9abdd7f2338e33cac47dbccd..5f8655efc6e8d7c4cd10e0d06877ba78e363c6f9 100644 (file)
@@ -34,14 +34,27 @@ self_process *process::get_self() {
   return SP;
 }
 
+#if defined(_MSC_VER)
+// Visual Studio complains that the self_process destructor never exits. This
+// doesn't make much sense, as that's the whole point of calling abort... Just
+// silence this warning.
+#pragma warning(push)
+#pragma warning(disable:4722)
+#endif
+
 // The destructor for the self_process subclass must never actually be
 // executed. There should be at most one instance of this class, and that
 // instance should live until the process terminates to avoid the potential for
 // racy accesses during shutdown.
 self_process::~self_process() {
+    assert(TempDirectory->exists() && "Who has removed TempDirectory?");
   llvm_unreachable("This destructor must never be executed!");
 }
 
+#if defined(_MSC_VER)
+#pragma warning(pop)
+#endif
+
 }
 
 // Include the platform-specific parts of this class.