Skip to content

Commit e00d1dd

Browse files
authored
[ARM] Fix armv6kz LDREX definition (llvm#122965)
Fixes llvm#37901 This behavior is consistent with GCC
1 parent da4551a commit e00d1dd

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

clang/lib/Basic/Targets/ARM.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -617,7 +617,8 @@ bool ARMTargetInfo::handleTargetFeatures(std::vector<std::string> &Features,
617617
case 6:
618618
if (ArchProfile == llvm::ARM::ProfileKind::M)
619619
LDREX = 0;
620-
else if (ArchKind == llvm::ARM::ArchKind::ARMV6K)
620+
else if (ArchKind == llvm::ARM::ArchKind::ARMV6K ||
621+
ArchKind == llvm::ARM::ArchKind::ARMV6KZ)
621622
LDREX = LDREX_D | LDREX_W | LDREX_H | LDREX_B;
622623
else
623624
LDREX = LDREX_W;

clang/test/Preprocessor/arm-acle-6.4.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,10 @@
9393

9494
// CHECK-V6K: __ARM_FEATURE_LDREX 0xf
9595

96+
// RUN: %clang -target arm-none-linux-eabi -march=armv6kz -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V6KZ
97+
98+
// CHECK-V6KZ: __ARM_FEATURE_LDREX 0xf
99+
96100
// RUN: %clang -target arm-none-linux-eabi -march=armv7-a -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V7A
97101

98102
// CHECK-V7A: __ARM_ARCH 7

0 commit comments

Comments
 (0)