Skip to content

Commit 54e6eac

Browse files
committed
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.
1 parent 199d47d commit 54e6eac

File tree

1 file changed

+10
-11
lines changed

1 file changed

+10
-11
lines changed

src/test/util/coverage.cpp

+10-11
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,18 @@
44

55
#include <test/util/coverage.h>
66

7-
#if defined(__clang__) && defined(__linux__)
8-
extern "C" void __llvm_profile_reset_counters(void) __attribute__((weak));
9-
extern "C" void __gcov_reset(void) __attribute__((weak));
7+
#if defined(__clang__)
8+
extern "C" __attribute__((weak)) void __llvm_profile_reset_counters(void);
9+
extern "C" __attribute__((weak)) void __gcov_reset(void);
1010

11-
void ResetCoverageCounters()
12-
{
13-
if (__llvm_profile_reset_counters) {
14-
__llvm_profile_reset_counters();
15-
}
11+
// Fallback implementations
12+
extern "C" __attribute__((weak)) void __llvm_profile_reset_counters(void) {}
13+
extern "C" __attribute__((weak)) void __gcov_reset(void) {}
1614

17-
if (__gcov_reset) {
18-
__gcov_reset();
19-
}
15+
void ResetCoverageCounters() {
16+
// These will call the real ones if available, or our dummies if not
17+
__llvm_profile_reset_counters();
18+
__gcov_reset();
2019
}
2120
#else
2221
void ResetCoverageCounters() {}

0 commit comments

Comments
 (0)