diff options
author | Jonathan Roelofs <jonathan@codesourcery.com> | 2014-10-07 15:11:32 +0000 |
---|---|---|
committer | Jonathan Roelofs <jonathan@codesourcery.com> | 2014-10-07 15:11:32 +0000 |
commit | 2b00d546765615234d93b0fe48363cb753c085d2 (patch) | |
tree | da1227442ef90774879506b8d837e3c26009d05b | |
parent | 17364d4e0538e30b815ab97a08189de55d4ea703 (diff) | |
download | bcm5719-llvm-2b00d546765615234d93b0fe48363cb753c085d2.tar.gz bcm5719-llvm-2b00d546765615234d93b0fe48363cb753c085d2.zip |
Emit diagnostic for -munaligned-access on v6m
Patch by: Charlie Turner <charlie.turner@arm.com>
llvm-svn: 219211
-rw-r--r-- | clang/lib/Driver/Tools.cpp | 3 | ||||
-rw-r--r-- | clang/test/Driver/arm-alignment.c | 9 |
2 files changed, 10 insertions, 2 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index c09d48906e5..bb9efaf1430 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -823,8 +823,7 @@ void Clang::AddARMTargetArgs(const ArgList &Args, 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"); } diff --git a/clang/test/Driver/arm-alignment.c b/clang/test/Driver/arm-alignment.c index e7b7ac34874..3fe595143f7 100644 --- a/clang/test/Driver/arm-alignment.c +++ b/clang/test/Driver/arm-alignment.c @@ -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 |