Author: alelab01 Date: Mon Oct 5 07:45:10 2015 New Revision: 249308 URL: http://llvm.org/viewvc/llvm-project?rev=249308&view=rev Log: The Driver does not set the +strict-align flag when targeting [ARM] armv6m + netbsd. Tests are misssing for armv6m + darwin as well.
Differential Revision: http://reviews.llvm.org/D13217 Modified: cfe/trunk/lib/Basic/Targets.cpp cfe/trunk/lib/Driver/Tools.cpp cfe/trunk/test/Driver/arm-alignment.c Modified: cfe/trunk/lib/Basic/Targets.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets.cpp?rev=249308&r1=249307&r2=249308&view=diff ============================================================================== --- cfe/trunk/lib/Basic/Targets.cpp (original) +++ cfe/trunk/lib/Basic/Targets.cpp Mon Oct 5 07:45:10 2015 @@ -4452,10 +4452,6 @@ public: if (Feature[0] == '+') Features[Feature+1] = true; - if (ArchVersion < 6 || - (ArchVersion == 6 && ArchProfile == llvm::ARM::PK_M)) - Features["strict-align"] = true; - return TargetInfo::initFeatureMap(Features, Diags, CPU, FeaturesVec); } Modified: cfe/trunk/lib/Driver/Tools.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=249308&r1=249307&r2=249308&view=diff ============================================================================== --- cfe/trunk/lib/Driver/Tools.cpp (original) +++ cfe/trunk/lib/Driver/Tools.cpp Mon Oct 5 07:45:10 2015 @@ -834,7 +834,8 @@ static void getARMTargetFeatures(const T // The above behavior is consistent with GCC. int VersionNum = getARMSubArchVersionNumber(Triple); if (Triple.isOSDarwin() || Triple.isOSNetBSD()) { - if (VersionNum < 6) + if (VersionNum < 6 || + Triple.getSubArch() == llvm::Triple::SubArchType::ARMSubArch_v6m) Features.push_back("+strict-align"); } else if (Triple.isOSLinux() || Triple.isOSNaCl()) { if (VersionNum < 7) Modified: cfe/trunk/test/Driver/arm-alignment.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/arm-alignment.c?rev=249308&r1=249307&r2=249308&view=diff ============================================================================== --- cfe/trunk/test/Driver/arm-alignment.c (original) +++ cfe/trunk/test/Driver/arm-alignment.c Mon Oct 5 07:45:10 2015 @@ -59,6 +59,12 @@ // RUN: %clang -target armv6-unknown-nacl-gnueabihf -### %s 2> %t // RUN: FileCheck --check-prefix=CHECK-ALIGNED-ARM < %t %s +// RUN: %clang -target armv6m-apple-darwin -### %s 2> %t +// RUN: FileCheck --check-prefix=CHECK-ALIGNED-ARM < %t %s + +// RUN: %clang -target armv6m-netbsd-eabi -### %s 2> %t +// RUN: FileCheck --check-prefix=CHECK-ALIGNED-ARM < %t %s + // RUN: %clang -target aarch64-none-gnueabi -mno-unaligned-access -### %s 2> %t // RUN: FileCheck --check-prefix=CHECK-ALIGNED-AARCH64 < %t %s _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits