Author: jroelofs Date: Tue Oct 7 10:11:32 2014 New Revision: 219211 URL: http://llvm.org/viewvc/llvm-project?rev=219211&view=rev Log: Emit diagnostic for -munaligned-access on v6m
Patch by: Charlie Turner <[email protected]> Modified: cfe/trunk/lib/Driver/Tools.cpp cfe/trunk/test/Driver/arm-alignment.c Modified: cfe/trunk/lib/Driver/Tools.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=219211&r1=219210&r2=219211&view=diff ============================================================================== --- cfe/trunk/lib/Driver/Tools.cpp (original) +++ cfe/trunk/lib/Driver/Tools.cpp Tue Oct 7 10:11:32 2014 @@ -823,8 +823,7 @@ void Clang::AddARMTargetArgs(const ArgLi if (A->getOption().matches(options::OPT_mno_unaligned_access)) CmdArgs.push_back("-arm-strict-align"); else { - if (getToolChain().getTriple().getSubArch() == - llvm::Triple::SubArchType::ARMSubArch_v6m) + if (Triple.getSubArch() == llvm::Triple::SubArchType::ARMSubArch_v6m) D.Diag(diag::err_target_unsupported_unaligned) << "v6m"; CmdArgs.push_back("-arm-no-strict-align"); } Modified: cfe/trunk/test/Driver/arm-alignment.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/arm-alignment.c?rev=219211&r1=219210&r2=219211&view=diff ============================================================================== --- cfe/trunk/test/Driver/arm-alignment.c (original) +++ cfe/trunk/test/Driver/arm-alignment.c Tue Oct 7 10:11:32 2014 @@ -49,3 +49,12 @@ // CHECK-ALIGNED-ARM: "-backend-option" "-arm-strict-align" // CHECK-ALIGNED-AARCH64: "-backend-option" "-aarch64-strict-align" + +// Make sure that v6M cores always trigger the unsupported aligned accesses error +// for all supported architecture triples. +// RUN: not %clang -c -target thumbv6m-none-gnueabi -mcpu=cortex-m0 -munaligned-access %s 2>&1 | \ +// RUN: FileCheck --check-prefix CHECK-UNALIGN-NOT-SUPPORTED %s +// RUN: not %clang -c -target thumb-none-gnueabi -mcpu=cortex-m0 -munaligned-access %s 2>&1 | \ +// RUN: FileCheck --check-prefix CHECK-UNALIGN-NOT-SUPPORTED %s + +// CHECK-UNALIGN-NOT-SUPPORTED: error: the v6m sub-architecture does not support unaligned accesses _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
