Skip to content
This repository was archived by the owner on Mar 7, 2025. It is now read-only.

No longer compiles due to googletest changes.  #743

@AphidGit

Description

@AphidGit

Issue: This no longer compiles correctly. Issue is in the imported googletest which is not version-bound. Some changes in this external code have made it incompatible with this repo's makefile/autotools thingamajig.

A test was added that does something to blow up the compiler; specifically this bit of code;

static void StackLowerThanAddress(const void* ptr,
                                  bool* result) GTEST_NO_INLINE_;
// HWAddressSanitizer add a random tag to the MSB of the local variable address,
// making comparison result unpredictable.
GTEST_ATTRIBUTE_NO_SANITIZE_HWADDRESS_
static void StackLowerThanAddress(const void* ptr, bool* result) {
  int dummy;
  *result = (&dummy < ptr);
}

// Make sure AddressSanitizer does not tamper with the stack here.
GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_
GTEST_ATTRIBUTE_NO_SANITIZE_HWADDRESS_
static bool StackGrowsDown() {
  int dummy;
  bool result;
  StackLowerThanAddress(&dummy, &result);
  return result;
}
#  endif  // GTEST_HAS_CLONE

Dummy is filled with the current stack pointer to check that the stack grows downward or upward (i.e. what do the memory addresses do, increase or decrease?). The compiler does not like this uninitialized pointer use when used with default settings including -wError=maybe-unitialized . This option needs to be turned off to compile googletest (and probably results in more errors; i.e. set -Wno-error-maybe-uninitialized). Haven't been able to test any further because autotools is so impenetrably complicated.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions