From 76244be6d4f8cd953c5ebe869f5115dcc7ec4f7b Mon Sep 17 00:00:00 2001 From: Oliver Stannard Date: Wed, 13 Aug 2014 09:18:12 +0000 Subject: Emit diagnostic for -munaligned-access on v6m targets Rather than silently disabling unaligned accesses for v6m targets as in the previous patch to llvm, instead produce a warning saying that this architecture doesn't support unaligned accesses. Patch by Ben Foster llvm-svn: 215531 --- clang/lib/Driver/Tools.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'clang/lib/Driver/Tools.cpp') diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index 2a817f78638..21ffce24432 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -806,8 +806,12 @@ void Clang::AddARMTargetArgs(const ArgList &Args, CmdArgs.push_back("-backend-option"); if (A->getOption().matches(options::OPT_mno_unaligned_access)) CmdArgs.push_back("-arm-strict-align"); - else + else { + if (getToolChain().getTriple().getSubArch() == + llvm::Triple::SubArchType::ARMSubArch_v6m) + D.Diag(diag::err_target_unsupported_unaligned) << "v6m"; CmdArgs.push_back("-arm-no-strict-align"); + } } } -- cgit v1.2.3