Fix stack test on arm32
The stack test puts a pointer to an allocation on the stack, checks that there are no leaks, then lets it go out of scope and checks that libmemunreachable can find a leak. This works on arm64, but on arm32 the pointer on the stack doesn't get overwitten and the leak is not detected. Rewrite the pointer to be NULL instead. Test: memunreachable_test Change-Id: I5959a34cbb572a5d8670270077a85d247a3a4880
This commit is contained in:
parent
f3ce8bc8ae
commit
76464d958b
|
@ -40,7 +40,8 @@ class HiddenPointer {
|
|||
volatile uintptr_t ptr_;
|
||||
};
|
||||
|
||||
static void Ref(void* ptr) {
|
||||
// Trick the compiler into thinking a value on the stack is still referenced.
|
||||
static void Ref(void** ptr) {
|
||||
write(0, ptr, 0);
|
||||
}
|
||||
|
||||
|
@ -58,14 +59,14 @@ TEST(MemunreachableTest, stack) {
|
|||
|
||||
{
|
||||
void* ptr = hidden_ptr.Get();
|
||||
Ref(ptr);
|
||||
Ref(&ptr);
|
||||
|
||||
UnreachableMemoryInfo info;
|
||||
|
||||
ASSERT_TRUE(GetUnreachableMemory(info));
|
||||
ASSERT_EQ(0U, info.leaks.size());
|
||||
|
||||
Ref(ptr);
|
||||
ptr = nullptr;
|
||||
}
|
||||
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue