Index: clang/lib/Driver/ToolChains/Clang.cpp =================================================================== --- clang/lib/Driver/ToolChains/Clang.cpp +++ clang/lib/Driver/ToolChains/Clang.cpp @@ -1415,6 +1415,12 @@ return true; return false; + case llvm::Triple::aarch64: + case llvm::Triple::aarch64_be: + case llvm::Triple::arm: + case llvm::Triple::armeb: + case llvm::Triple::thumb: + case llvm::Triple::thumbeb: case llvm::Triple::xcore: case llvm::Triple::wasm32: case llvm::Triple::wasm64: Index: clang/test/Driver/triple-arm-none.c =================================================================== --- /dev/null +++ clang/test/Driver/triple-arm-none.c @@ -0,0 +1,38 @@ +// RUN: %clang --target=armv7-arm-none-eabi -### -c %s 2>&1 | \ +// RUN: FileCheck %s --check-prefix=CHECK --check-prefix=A32LITTLE + +// RUN: %clang --target=armv7-arm-none-eabi -mbig-endian -### -c %s 2>&1 | \ +// RUN: FileCheck %s --check-prefix=CHECK --check-prefix=A32BIG +// RUN: %clang --target=armebv7-arm-none-eabi -### -c %s 2>&1 | \ +// RUN: FileCheck %s --check-prefix=CHECK --check-prefix=A32BIG + +// RUN: %clang --target=armv8a-arm-none-eabi -mthumb -### -c %s 2>&1 | \ +// RUN: FileCheck %s --check-prefix=CHECK --check-prefix=T32LITTLE +// RUN: %clang --target=thumbv8a-arm-none-eabi -### -c %s 2>&1 | \ +// RUN: FileCheck %s --check-prefix=CHECK + +// RUN: %clang --target=armv8a-arm-none-eabi -mthumb -mbig-endian -### -c %s 2>&1 | \ +// RUN: FileCheck %s --check-prefix=CHECK --check-prefix=T32BIG +// RUN: %clang --target=thumbv8a-arm-none-eabi -mbig-endian -### -c %s 2>&1 | \ +// RUN: FileCheck %s --check-prefix=CHECK +// RUN: %clang --target=thumbebv8a-arm-none-eabi -### -c %s 2>&1 | \ +// RUN: FileCheck %s --check-prefix=CHECK + +// RUN: %clang --target=aarch64_be-arm-none-eabi -### -c %s 2>&1 | \ +// RUN: FileCheck %s --check-prefix=CHECK --check-prefix=A64BIG + +// A32LITTLE: Target: armv7-arm-none-eabi +// A64LITTLE: Target: aarch64-arm-none-eabi +// A64BIG: Target: aarch64_be-arm-none-eabi + +// CHECK: "-cc1" +// CHECK-NOT: "-no-integrated-as" + +// A32LITTLE: "-triple" "armv7-arm-none-eabi" +// A32BIG: "-triple" "armebv7-arm-none-eabi" +// T32LITTLE: "-triple" "thumbv8-arm-none-eabi" +// T32BIG: "-triple" "thumbebv8-arm-none-eabi" +// A64LITTLE: "-triple" "aarch64-arm-none-eabi" +// A64BIG: "-triple" "aarch64_be-arm-none-eabi" + +// CHECK: "-fno-common"