summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNAKAMURA Takumi <geek4civic@gmail.com>2013-07-01 09:51:42 +0000
committerNAKAMURA Takumi <geek4civic@gmail.com>2013-07-01 09:51:42 +0000
commitd212db0cac7a7d0d58ba09369808a408fa8da5c1 (patch)
tree7394d9b16f95679f6a36c163d9a4b8923bd5699b
parentf04f8b4f779919de0b3bccef2144d965ac51d35f (diff)
downloadllvm-d212db0cac7a7d0d58ba09369808a408fa8da5c1.tar.gz
llvm-d212db0cac7a7d0d58ba09369808a408fa8da5c1.tar.bz2
llvm-d212db0cac7a7d0d58ba09369808a408fa8da5c1.tar.xz
llvm-symbolizer: Recognize a drive letter on win32. Then "REQUIRES: shell" can be removed.
FIXME: Could we use llvm::sys::Path here? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185322 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--test/DebugInfo/llvm-symbolizer.test2
-rw-r--r--tools/llvm-symbolizer/LLVMSymbolize.cpp5
2 files changed, 5 insertions, 2 deletions
diff --git a/test/DebugInfo/llvm-symbolizer.test b/test/DebugInfo/llvm-symbolizer.test
index 11ba664283..4dc369948f 100644
--- a/test/DebugInfo/llvm-symbolizer.test
+++ b/test/DebugInfo/llvm-symbolizer.test
@@ -10,8 +10,6 @@ RUN: echo "%p/Inputs/macho-universal:x86_64 0x100000f05" >> %t.input
RUN: llvm-symbolizer --functions --inlining --demangle=false \
RUN: --default-arch=i386 < %t.input | FileCheck %s
-REQUIRES: shell
-
CHECK: main
CHECK-NEXT: /tmp/dbginfo{{[/\\]}}dwarfdump-test.cc:16
diff --git a/tools/llvm-symbolizer/LLVMSymbolize.cpp b/tools/llvm-symbolizer/LLVMSymbolize.cpp
index 57f34c2472..1945d689de 100644
--- a/tools/llvm-symbolizer/LLVMSymbolize.cpp
+++ b/tools/llvm-symbolizer/LLVMSymbolize.cpp
@@ -279,6 +279,11 @@ LLVMSymbolizer::getOrCreateModuleInfo(const std::string &ModuleName) {
std::string BinaryName = ModuleName;
std::string ArchName = Opts.DefaultArch;
size_t ColonPos = ModuleName.find(':');
+#if defined(_WIN32)
+ // Recognize a drive letter on win32.
+ if (ColonPos == 1 && isalpha(ModuleName[0]))
+ ColonPos = ModuleName.find(':', 2);
+#endif
if (ColonPos != std::string::npos) {
BinaryName = ModuleName.substr(0, ColonPos);
ArchName = ModuleName.substr(ColonPos + 1);