Open Issues Need Help
View All on GitHubAI Summary: This issue reports a conflict between `benchmark`'s mutex wrapper thread annotations and `libc++`'s own thread safety annotations when the latter are enabled globally with `-D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS` using clang 8. This conflict leads to compiler warnings about mutexes being incorrectly held or released, indicating that the thread safety analysis is confused by the overlapping annotation systems.
AI Summary: The Google Benchmark library (v1.9.4) fails to compile on QNX OS using the SDP 7.1.0 toolchain (qcc 8.3.0, gcc_ntoaarch64le_cxx). The issue occurs when building the library via CMake's FetchContent, indicating a potential platform-specific compilation or linking problem with QNX.
AI Summary: The task is to debug a compilation error (C2220) stemming from a warning (C4267) in the Google Benchmark library when building with MSVC and the UNICODE and _UNICODE preprocessor definitions. The error arises from a type conversion from 'size_t' to 'int', potentially losing data. The solution involves investigating the `sysinfo.cc` file around line 464 and modifying the code to handle the 'size_t' type appropriately, likely by changing the integer type to a wider one capable of holding the 'size_t' value without truncation.