summaryrefslogtreecommitdiff
path: root/lib/Target/ARM/MCTargetDesc
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2013-12-18 21:29:44 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2013-12-18 21:29:44 +0000
commit17ab16a248fc1724b30a963aee91bb4f52997f1a (patch)
tree63f092886f8379b49b321054ab5b3111db3dd1ea /lib/Target/ARM/MCTargetDesc
parent8cb0f6e78e491e9bb8c3612a6e1062243beaad4f (diff)
downloadllvm-17ab16a248fc1724b30a963aee91bb4f52997f1a.tar.gz
llvm-17ab16a248fc1724b30a963aee91bb4f52997f1a.tar.bz2
llvm-17ab16a248fc1724b30a963aee91bb4f52997f1a.tar.xz
Correctly handle the degenerated triple "thumb".
Fixes a crash in llc where some parts think the target is thumb and others think it is ARM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197607 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/MCTargetDesc')
-rw-r--r--lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp9
1 files changed, 3 insertions, 6 deletions
diff --git a/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp b/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
index 903b5d3949..400dab7148 100644
--- a/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
+++ b/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
@@ -89,14 +89,11 @@ std::string ARM_MC::ParseARMTriple(StringRef TT, StringRef CPU) {
unsigned Idx = 0;
// FIXME: Enhance Triple helper class to extract ARM version.
- bool isThumb = false;
+ bool isThumb = triple.getArch() == Triple::thumb;
if (Len >= 5 && TT.substr(0, 4) == "armv")
Idx = 4;
- else if (Len >= 6 && TT.substr(0, 5) == "thumb") {
- isThumb = true;
- if (Len >= 7 && TT[5] == 'v')
- Idx = 6;
- }
+ else if (Len >= 7 && TT.substr(0, 6) == "thumbv")
+ Idx = 6;
bool NoCPU = CPU == "generic" || CPU.empty();
std::string ARMArchFeature;