test: Enable ResetCoverageCounters beyond Linux

Non-Linux linkers require a fallback implementation for when coverage is not enabled.
The fallbacks are marked weak to have lower precedence than built-in implementations when available, removing ambiguity from the linker.
This commit is contained in:
janb84 committed 2025-03-16 12:01:58 +01:00
1 parent 199d47d962
commit 54e6eacc1f
1 file changed
+10 -11
+10 -11
View File
@@ -4,19 +4,18 @@
#include <test/util/coverage.h> #include <test/util/coverage.h>
#if defined(__clang__) && defined(__linux__) #if defined(__clang__)
extern "C" void __llvm_profile_reset_counters(void) __attribute__((weak)); extern "C" __attribute__((weak)) void __llvm_profile_reset_counters(void);
extern "C" void __gcov_reset(void) __attribute__((weak)); extern "C" __attribute__((weak)) void __gcov_reset(void);
void ResetCoverageCounters() // Fallback implementations
{ extern "C" __attribute__((weak)) void __llvm_profile_reset_counters(void) {}
if (__llvm_profile_reset_counters) { extern "C" __attribute__((weak)) void __gcov_reset(void) {}
__llvm_profile_reset_counters();
}
if (__gcov_reset) { void ResetCoverageCounters() {
__gcov_reset(); // These will call the real ones if available, or our dummies if not
} __llvm_profile_reset_counters();
__gcov_reset();
} }
#else #else
void ResetCoverageCounters() {} void ResetCoverageCounters() {}