Fix `asan/TestCases/Darwin/scrible.cpp` to work on platforms where `long` is not 64-bits.
Previously the test was failing on platforms where `long` was less than 64-bits wide (e.g. older WatchOS simulators and arm64_32) because the `padding` field was too small. The test currently relies on the `my_object->isa` being scribbled or left unmodified after `my_object` is freed. However, this was not the case because the `isa` pointer intersected with `ChunkHeader::free_context_id`. `free_context_id` starts at the beginning of user memory but it only initialized once the memory is freed. This caused the `isa` pointer to change after it was freed leading to the test crashing. To fix this the `padding` field has been made explicitly 64-bits wide (same size as `ChunkHeader::free_context_id`). rdar://75806757 Differential Revision: https://reviews.llvm.org/D109409
Loading
Please sign in to comment