diff options
-rw-r--r-- | llvm/test/tools/dsymutil/ARM/thumb.c | 13 | ||||
-rwxr-xr-x | llvm/test/tools/dsymutil/Inputs/thumb.armv7m | bin | 0 -> 4288 bytes | |||
-rw-r--r-- | llvm/test/tools/dsymutil/Inputs/thumb.o | bin | 0 -> 1224 bytes | |||
-rw-r--r-- | llvm/tools/dsymutil/MachODebugMapParser.cpp | 6 |
4 files changed, 18 insertions, 1 deletions
diff --git a/llvm/test/tools/dsymutil/ARM/thumb.c b/llvm/test/tools/dsymutil/ARM/thumb.c new file mode 100644 index 00000000000..4589653305a --- /dev/null +++ b/llvm/test/tools/dsymutil/ARM/thumb.c @@ -0,0 +1,13 @@ +// RUN: llvm-dsymutil -f -oso-prepend-path=%p/.. %p/../Inputs/thumb.armv7m -o - | llvm-dwarfdump - | FileCheck %s +// RUN: llvm-dsymutil -arch armv7m -f -oso-prepend-path=%p/.. %p/../Inputs/thumb.armv7m -o - | llvm-dwarfdump - | FileCheck %s + +/* Compile with: + clang -c thumb.c -arch armv7m -g + clang thumb.o -o thumb.armv7m -arch armv7m -nostdlib -static -Wl,-e,_start +*/ + +void start() { +} + +CHECK: DW_AT_name{{.*}}"thumb.c" +CHECK: DW_AT_name{{.*}}"start" diff --git a/llvm/test/tools/dsymutil/Inputs/thumb.armv7m b/llvm/test/tools/dsymutil/Inputs/thumb.armv7m Binary files differnew file mode 100755 index 00000000000..785ab997bc4 --- /dev/null +++ b/llvm/test/tools/dsymutil/Inputs/thumb.armv7m diff --git a/llvm/test/tools/dsymutil/Inputs/thumb.o b/llvm/test/tools/dsymutil/Inputs/thumb.o Binary files differnew file mode 100644 index 00000000000..8bac2a1e484 --- /dev/null +++ b/llvm/test/tools/dsymutil/Inputs/thumb.o diff --git a/llvm/tools/dsymutil/MachODebugMapParser.cpp b/llvm/tools/dsymutil/MachODebugMapParser.cpp index 476ac80fba2..22215200ed5 100644 --- a/llvm/tools/dsymutil/MachODebugMapParser.cpp +++ b/llvm/tools/dsymutil/MachODebugMapParser.cpp @@ -294,7 +294,11 @@ static bool shouldLinkArch(SmallVectorImpl<StringRef> &Archs, StringRef Arch) { std::find(Archs.begin(), Archs.end(), "arm") != Archs.end()) return true; - return std::find(Archs.begin(), Archs.end(), Arch) != Archs.end(); + SmallString<16> ArchName = Arch; + if (Arch.startswith("thumb")) + ArchName = ("arm" + Arch.substr(5)).str(); + + return std::find(Archs.begin(), Archs.end(), ArchName) != Archs.end(); } bool MachODebugMapParser::dumpStab() { |