Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 76464d95 authored by Colin Cross's avatar Colin Cross
Browse files

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
parent f3ce8bc8
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -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;
  }

  {