Make llvm-symbolizer work on Windows.
[oota-llvm.git] / tools / llvm-symbolizer / llvm-symbolizer.cpp
index cb40472f9d2fd128e22b21d496be0a678bc11bdc..7a77a4476e3b8a2c9f1ae9dcd6c1b200320e85ad 100644 (file)
@@ -17,6 +17,7 @@
 
 #include "LLVMSymbolize.h"
 #include "llvm/ADT/StringRef.h"
 
 #include "LLVMSymbolize.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/COM.h"
 #include "llvm/Support/CommandLine.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/FileSystem.h"
 #include "llvm/Support/CommandLine.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/FileSystem.h"
@@ -123,6 +124,8 @@ int main(int argc, char **argv) {
   PrettyStackTraceProgram X(argc, argv);
   llvm_shutdown_obj Y; // Call llvm_shutdown() on exit.
 
   PrettyStackTraceProgram X(argc, argv);
   llvm_shutdown_obj Y; // Call llvm_shutdown() on exit.
 
+  llvm::sys::InitializeCOMRAII COM(llvm::sys::COMThreadingMode::MultiThreaded);
+
   cl::ParseCommandLineOptions(argc, argv, "llvm-symbolizer\n");
   LLVMSymbolizer::Options Opts(ClUseSymbolTable, ClPrintFunctions,
                                ClPrintInlining, ClDemangle, ClDefaultArch);
   cl::ParseCommandLineOptions(argc, argv, "llvm-symbolizer\n");
   LLVMSymbolizer::Options Opts(ClUseSymbolTable, ClPrintFunctions,
                                ClPrintInlining, ClDemangle, ClDefaultArch);
@@ -146,5 +149,6 @@ int main(int argc, char **argv) {
     outs() << Result << "\n";
     outs().flush();
   }
     outs() << Result << "\n";
     outs().flush();
   }
+
   return 0;
 }
   return 0;
 }