r267249 removed the dual ARM/Thumb interface from MachOObjectFile,
simplifying llvm-dsymutil's code. This unfortunately also regressed
llvm-dsymutil's ability to select thumb slices, because the simplified
code was also dealing with the discrepency between the slice arch
(eg. armv7m) and the triple arch name (eg. thumbv7m).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268894
91177308-0d34-0410-b5e6-
96231b3b80d8
--- /dev/null
+// 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"
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() {