Author: Un1q32 Date: 2025-01-15T13:31:54Z New Revision: e00d1dd6eaf46cf17080cdf506348ab8f037f6f2
URL: https://github.com/llvm/llvm-project/commit/e00d1dd6eaf46cf17080cdf506348ab8f037f6f2 DIFF: https://github.com/llvm/llvm-project/commit/e00d1dd6eaf46cf17080cdf506348ab8f037f6f2.diff LOG: [ARM] Fix armv6kz LDREX definition (#122965) Fixes #37901 This behavior is consistent with GCC Added: Modified: clang/lib/Basic/Targets/ARM.cpp clang/test/Preprocessor/arm-acle-6.4.c Removed: ################################################################################ diff --git a/clang/lib/Basic/Targets/ARM.cpp b/clang/lib/Basic/Targets/ARM.cpp index 61ee26d8863832..0fd5433a76402e 100644 --- a/clang/lib/Basic/Targets/ARM.cpp +++ b/clang/lib/Basic/Targets/ARM.cpp @@ -617,7 +617,8 @@ bool ARMTargetInfo::handleTargetFeatures(std::vector<std::string> &Features, case 6: if (ArchProfile == llvm::ARM::ProfileKind::M) LDREX = 0; - else if (ArchKind == llvm::ARM::ArchKind::ARMV6K) + else if (ArchKind == llvm::ARM::ArchKind::ARMV6K || + ArchKind == llvm::ARM::ArchKind::ARMV6KZ) LDREX = LDREX_D | LDREX_W | LDREX_H | LDREX_B; else LDREX = LDREX_W; diff --git a/clang/test/Preprocessor/arm-acle-6.4.c b/clang/test/Preprocessor/arm-acle-6.4.c index fcabe028b9559c..2c8f4868263a61 100644 --- a/clang/test/Preprocessor/arm-acle-6.4.c +++ b/clang/test/Preprocessor/arm-acle-6.4.c @@ -93,6 +93,10 @@ // CHECK-V6K: __ARM_FEATURE_LDREX 0xf +// RUN: %clang -target arm-none-linux-eabi -march=armv6kz -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V6KZ + +// CHECK-V6KZ: __ARM_FEATURE_LDREX 0xf + // RUN: %clang -target arm-none-linux-eabi -march=armv7-a -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-V7A // CHECK-V7A: __ARM_ARCH 7 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits