Index: lib/Driver/ToolChain.cpp =================================================================== --- lib/Driver/ToolChain.cpp +++ lib/Driver/ToolChain.cpp @@ -277,7 +277,9 @@ : tools::arm::getLLVMArchSuffixForARM(tools::arm::getARMTargetCPU(Args, Triple)); bool ThumbDefault = Suffix.startswith("v6m") || Suffix.startswith("v7m") || Suffix.startswith("v7em") || - (Suffix.startswith("v7") && getTriple().isOSBinFormatMachO()); + (Suffix.startswith("v7") && getTriple().isOSBinFormatMachO()) || + getTriple().getArch() == llvm::Triple::thumb || + getTriple().getArch() == llvm::Triple::thumbeb; // FIXME: this is invalid for WindowsCE if (getTriple().isOSWindows()) ThumbDefault = true; Index: test/Driver/arm-cortex-cpus.c =================================================================== --- test/Driver/arm-cortex-cpus.c +++ test/Driver/arm-cortex-cpus.c @@ -102,6 +102,7 @@ // RUN: %clang -target armv7a-linux-gnueabi -mthumb -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-V7A-THUMB %s // RUN: %clang -target arm-linux-gnueabi -march=armv7-a -mthumb -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-V7A-THUMB %s +// RUN: %clang -target thumbv7a-linux-gnueabi -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-V7A-THUMB %s // CHECK-V7A-THUMB: "-cc1"{{.*}} "-triple" "thumbv7-{{.*}} "-target-cpu" "cortex-a8" // RUN: %clang -target armv7r-linux-gnueabi -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-V7R %s Index: test/Driver/netbsd.c =================================================================== --- test/Driver/netbsd.c +++ test/Driver/netbsd.c @@ -156,7 +156,7 @@ // ARM-HF: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc" // ARM-HF: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o" -// THUMB: clang{{.*}}" "-cc1" "-triple" "armv5e--netbsd-eabi" +// THUMB: clang{{.*}}" "-cc1" "-triple" "thumbv5e--netbsd-eabi" // THUMB: as{{.*}}" "-mcpu=arm926ej-s" "-o" // THUMB: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so" // THUMB: "-m" "armelf_nbsd_eabi" @@ -165,7 +165,7 @@ // THUMB: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc" // THUMB: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o" -// THUMBEB: clang{{.*}}" "-cc1" "-triple" "armebv5e--netbsd-eabi" +// THUMBEB: clang{{.*}}" "-cc1" "-triple" "thumbebv5e--netbsd-eabi" // THUMBEB: as{{.*}}" "-mcpu=arm926ej-s" "-o" // THUMBEB: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so" // THUMBEB: "-m" "armelfb_nbsd_eabi"