forked from OSchip/llvm-project
[compiler-rt] Fix const and volatile qualifier warnings
Building with a new clang produces a bunch of warnings about dropped 'const' and 'volatile' qualifiers on pointers. Let's fix them. Differential Revision: https://reviews.llvm.org/D39861 llvm-svn: 317929
This commit is contained in:
parent
91732475a6
commit
ada45dfde7
|
|
@ -27,7 +27,7 @@ struct MemoryMappingLayoutData {
|
|||
ModuleArch current_arch;
|
||||
u8 current_uuid[kModuleUUIDSize];
|
||||
int current_load_cmd_count;
|
||||
char *current_load_cmd_addr;
|
||||
const char *current_load_cmd_addr;
|
||||
bool current_instrumented;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ namespace __sanitizer {
|
|||
struct MemoryMappedSegmentData {
|
||||
char name[kMaxSegName];
|
||||
uptr nsects;
|
||||
char *current_load_cmd_addr;
|
||||
const char *current_load_cmd_addr;
|
||||
u32 lc_type;
|
||||
uptr base_virt_addr;
|
||||
uptr addr_mask;
|
||||
|
|
@ -212,7 +212,7 @@ MemoryMappedSegmentData *seg_data, MemoryMappingLayoutData &layout_data) {
|
|||
if (seg_data) {
|
||||
seg_data->nsects = sc->nsects;
|
||||
seg_data->current_load_cmd_addr =
|
||||
(char *)lc + sizeof(SegmentCommand);
|
||||
(const char *)lc + sizeof(SegmentCommand);
|
||||
seg_data->lc_type = kLCSegment;
|
||||
seg_data->base_virt_addr = base_virt_addr;
|
||||
seg_data->addr_mask = addr_mask;
|
||||
|
|
@ -265,7 +265,7 @@ ModuleArch ModuleArchFromCpuType(cpu_type_t cputype, cpu_subtype_t cpusubtype) {
|
|||
}
|
||||
|
||||
static const load_command *NextCommand(const load_command *lc) {
|
||||
return (const load_command *)((char *)lc + lc->cmdsize);
|
||||
return (const load_command *)((const char *)lc + lc->cmdsize);
|
||||
}
|
||||
|
||||
static void FindUUID(const load_command *first_lc, u8 *uuid_output) {
|
||||
|
|
@ -309,12 +309,13 @@ bool MemoryMappingLayout::Next(MemoryMappedSegment *segment) {
|
|||
switch (data_.current_magic) {
|
||||
#ifdef MH_MAGIC_64
|
||||
case MH_MAGIC_64: {
|
||||
data_.current_load_cmd_addr = (char *)hdr + sizeof(mach_header_64);
|
||||
data_.current_load_cmd_addr =
|
||||
(const char *)hdr + sizeof(mach_header_64);
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
case MH_MAGIC: {
|
||||
data_.current_load_cmd_addr = (char *)hdr + sizeof(mach_header);
|
||||
data_.current_load_cmd_addr = (const char *)hdr + sizeof(mach_header);
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
|
|
|
|||
|
|
@ -100,7 +100,7 @@ OSATOMIC_INTERCEPTORS_BITWISE(OSAtomicXor, fetch_xor,
|
|||
TSAN_INTERCEPTOR(bool, f, t old_value, t new_value, t volatile *ptr) { \
|
||||
SCOPED_TSAN_INTERCEPTOR(f, old_value, new_value, ptr); \
|
||||
return tsan_atomic_f##_compare_exchange_strong( \
|
||||
(tsan_t *)ptr, (tsan_t *)&old_value, (tsan_t)new_value, \
|
||||
(volatile tsan_t *)ptr, (tsan_t *)&old_value, (tsan_t)new_value, \
|
||||
kMacOrderNonBarrier, kMacOrderNonBarrier); \
|
||||
} \
|
||||
\
|
||||
|
|
@ -108,7 +108,7 @@ OSATOMIC_INTERCEPTORS_BITWISE(OSAtomicXor, fetch_xor,
|
|||
t volatile *ptr) { \
|
||||
SCOPED_TSAN_INTERCEPTOR(f##Barrier, old_value, new_value, ptr); \
|
||||
return tsan_atomic_f##_compare_exchange_strong( \
|
||||
(tsan_t *)ptr, (tsan_t *)&old_value, (tsan_t)new_value, \
|
||||
(volatile tsan_t *)ptr, (tsan_t *)&old_value, (tsan_t)new_value, \
|
||||
kMacOrderBarrier, kMacOrderNonBarrier); \
|
||||
}
|
||||
|
||||
|
|
@ -122,14 +122,14 @@ OSATOMIC_INTERCEPTORS_CAS(OSAtomicCompareAndSwap32, __tsan_atomic32, a32,
|
|||
OSATOMIC_INTERCEPTORS_CAS(OSAtomicCompareAndSwap64, __tsan_atomic64, a64,
|
||||
int64_t)
|
||||
|
||||
#define OSATOMIC_INTERCEPTOR_BITOP(f, op, clear, mo) \
|
||||
TSAN_INTERCEPTOR(bool, f, uint32_t n, volatile void *ptr) { \
|
||||
SCOPED_TSAN_INTERCEPTOR(f, n, ptr); \
|
||||
char *byte_ptr = ((char *)ptr) + (n >> 3); \
|
||||
char bit = 0x80u >> (n & 7); \
|
||||
char mask = clear ? ~bit : bit; \
|
||||
char orig_byte = op((a8 *)byte_ptr, mask, mo); \
|
||||
return orig_byte & bit; \
|
||||
#define OSATOMIC_INTERCEPTOR_BITOP(f, op, clear, mo) \
|
||||
TSAN_INTERCEPTOR(bool, f, uint32_t n, volatile void *ptr) { \
|
||||
SCOPED_TSAN_INTERCEPTOR(f, n, ptr); \
|
||||
volatile char *byte_ptr = ((volatile char *)ptr) + (n >> 3); \
|
||||
char bit = 0x80u >> (n & 7); \
|
||||
char mask = clear ? ~bit : bit; \
|
||||
char orig_byte = op((volatile a8 *)byte_ptr, mask, mo); \
|
||||
return orig_byte & bit; \
|
||||
}
|
||||
|
||||
#define OSATOMIC_INTERCEPTORS_BITOP(f, op, clear) \
|
||||
|
|
|
|||
|
|
@ -522,9 +522,9 @@ TSAN_INTERCEPTOR(dispatch_data_t, dispatch_data_create, const void *buffer,
|
|||
return REAL(dispatch_data_create)(buffer, size, q, destructor);
|
||||
|
||||
if (destructor == DISPATCH_DATA_DESTRUCTOR_FREE)
|
||||
destructor = ^(void) { WRAP(free)((void *)buffer); };
|
||||
destructor = ^(void) { WRAP(free)((void *)(uintptr_t)buffer); };
|
||||
else if (destructor == DISPATCH_DATA_DESTRUCTOR_MUNMAP)
|
||||
destructor = ^(void) { WRAP(munmap)((void *)buffer, size); };
|
||||
destructor = ^(void) { WRAP(munmap)((void *)(uintptr_t)buffer, size); };
|
||||
|
||||
SCOPED_TSAN_INTERCEPTOR_USER_CALLBACK_START();
|
||||
dispatch_block_t heap_block = Block_copy(destructor);
|
||||
|
|
|
|||
Loading…
Reference in New Issue