Skip to content

Commit 5998d9c

Browse files
brooksdavisresistor
authored andcommitted
libunwind: prefer __has_feature(capabilities) to defined(__CHERI__)
1 parent ddab5d5 commit 5998d9c

File tree

3 files changed

+6
-6
lines changed

3 files changed

+6
-6
lines changed

libunwind/src/AddressSpace.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ class _LIBUNWIND_HIDDEN LocalAddressSpace {
174174
public:
175175
typedef uintptr_t pint_t;
176176
typedef intptr_t sint_t;
177-
#ifndef __CHERI__
177+
#if !__has_feature(capabilities)
178178
typedef libunwind::fake_capability_t capability_t;
179179
#else
180180
typedef ::uintcap_t capability_t;
@@ -342,7 +342,7 @@ class _LIBUNWIND_HIDDEN LocalAddressSpace {
342342
static pint_t to_pint_t(capability_t cap) {
343343
#ifdef __CHERI_PURE_CAPABILITY__
344344
return (uintcap_t)cap;
345-
#elif defined(__CHERI__)
345+
#elif __has_feature(capabilities)
346346
return (__cheri_addr pint_t)cap;
347347
#else
348348
pint_t result;
@@ -351,7 +351,7 @@ class _LIBUNWIND_HIDDEN LocalAddressSpace {
351351
#endif
352352
}
353353
static capability_t to_capability_t(pint_t pint) {
354-
#ifdef __CHERI__
354+
#if __has_feature(capabilities)
355355
return (uintcap_t)pint;
356356
#else
357357
capability_t result;

libunwind/src/DwarfInstructions.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -495,7 +495,7 @@ DwarfInstructions<A, R>::evaluateExpression(pint_t expression, A &addressSpace,
495495
// XXXAR: I am not entirely sure these operations should work on a uintcap_t
496496
// but if it's an untagged integer value it is fine
497497
#pragma clang diagnostic push
498-
#ifdef __CHERI__
498+
#if __has_feature(capabilities)
499499
#pragma clang diagnostic ignored "-Wcheri-bitwise-operations"
500500
#endif
501501
const bool log = true;

libunwind/src/Registers.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ namespace libunwind {
2424
// For emulating 128-bit registers
2525
struct v128 { uint32_t vec[4]; };
2626
// For emulating CHERI capability
27-
#ifndef __CHERI__
27+
#if !_has_feature(capabilities)
2828
struct __attribute__((aligned(16))) fake_capability {
2929
char bytes[16];
3030
};
@@ -3308,7 +3308,7 @@ class _LIBUNWIND_HIDDEN Registers_mips_newabi {
33083308
Registers_mips_newabi();
33093309
Registers_mips_newabi(const void *registers);
33103310
CAPABILITIES_NOT_SUPPORTED
3311-
#ifdef __CHERI__
3311+
#if __has_feature(capabilities)
33123312
#pragma message("Should also handle capability registers here.")
33133313
#endif
33143314

0 commit comments

Comments
 (0)