Skip to content

Commit 9c24a0b

Browse files
fix: ensure safe_memcpy retains SEH coverage with clang
1 parent d9e96cd commit 9c24a0b

1 file changed

Lines changed: 7 additions & 2 deletions

File tree

src/platform/windows/process.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,12 @@ static Protect WinToProtect(DWORD win) {
141141
}
142142
}
143143

144-
static bool safe_memcpy(void *dst, const void *src, size_t size) {
144+
#ifdef __clang__
145+
// clang-cl /EHsc can lose __try coverage if memcpy is lowered to inline
146+
// loads/stores. Keep memcpy as a real call in this SEH probe.
147+
[[clang::no_builtin("memcpy")]]
148+
#endif
149+
bool safe_memcpy(void *dst, const void *src, size_t size) {
145150
__try {
146151
std::memcpy(dst, src, size);
147152
return true;
@@ -415,4 +420,4 @@ std::vector<Thread> Process::threads() {
415420
}
416421
return threads;
417422
}
418-
} // namespace blook
423+
} // namespace blook

0 commit comments

Comments
 (0)