diff --git a/clang/lib/Driver/ToolChains/Arch/ARM.cpp b/clang/lib/Driver/ToolChains/Arch/ARM.cpp --- a/clang/lib/Driver/ToolChains/Arch/ARM.cpp +++ b/clang/lib/Driver/ToolChains/Arch/ARM.cpp @@ -524,6 +524,10 @@ } } } + + // Accept but warn. + if (Arg *A = Args.getLastArgNoClaim(options::OPT_mabi_EQ)) + A->ignoreTargetSpecific(); } if (getReadTPMode(D, Args, Triple, ForAS) == ReadTPMode::TPIDRURW) diff --git a/clang/test/Driver/arm-abi.c b/clang/test/Driver/arm-abi.c --- a/clang/test/Driver/arm-abi.c +++ b/clang/test/Driver/arm-abi.c @@ -61,3 +61,8 @@ // CHECK-APCS-GNU: "-target-abi" "apcs-gnu" // CHECK-AAPCS: "-target-abi" "aapcs" // CHECK-AAPCS-LINUX: "-target-abi" "aapcs-linux" + +// RUN: %clang --target=arm---gnueabi -mabi=aapcs -x assembler %s -### -o /dev/null 2>&1 \ +// RUN: | FileCheck --check-prefix=CHECK-ASM %s + +// CHECK-ASM: warning: argument unused during compilation: '-mabi={{.*}}'