Taints the non-acquire RMW's store address with the load part
[oota-llvm.git] / utils / unittest / UnitTestMain / TestMain.cpp
index 4e4c210fcd2e32e1b3945db25c08f3aa9d1aee2c..fb2b0f16ee3f298fe6788dbdd9bb380cce050ec9 100644 (file)
@@ -7,34 +7,40 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "llvm/Config/config.h"
-#include "llvm/System/Signals.h"
+#include "llvm/Support/CommandLine.h"
+#include "llvm/Support/Signals.h"
 #include "gtest/gtest.h"
 
 
-#if defined(LLVM_ON_WIN32)
-# include <Windows.h>
+#if defined(_WIN32)
+# include <windows.h>
 # if defined(_MSC_VER)
 #   include <crtdbg.h>
 # endif
 #endif
 
+const char *TestMainArgv0;
+
 int main(int argc, char **argv) {
-  llvm::sys::PrintStackTraceOnErrorSignal();
+  llvm::sys::PrintStackTraceOnErrorSignal(true /* Disable crash reporting */);
   testing::InitGoogleTest(&argc, argv);
+  llvm::cl::ParseCommandLineOptions(argc, argv);
+
+  // Make it easy for a test to re-execute itself by saving argv[0].
+  TestMainArgv0 = argv[0];
 
-# if defined(LLVM_ON_WIN32)
+# if defined(_WIN32)
   // Disable all of the possible ways Windows conspires to make automated
   // testing impossible.
   ::SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX);
 #   if defined(_MSC_VER)
     ::_set_error_mode(_OUT_TO_STDERR);
-    ::_CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG);
-    ::_CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR);
-    ::_CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG);
-    ::_CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDERR);
-    ::_CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG);
-    ::_CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);
+    _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG);
+    _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR);
+    _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG);
+    _CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDERR);
+    _CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG);
+    _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);
 #   endif
 # endif