On 25/09/2023 13.39, marcandre.lur...@redhat.com wrote:
From: Marc-André Lureau <marcandre.lur...@redhat.com>
In all likelihood, the compiler with lto doesn't see the function being
used, from assembly macro __try1. Help it by marking the function has
being used.
Fixes:
I'd suggest to use "Resolves:" for bug tickets so that they get auto-closed
when the patch is merged.
https://gitlab.com/qemu-project/qemu/-/issues/1904
Fixes: commit d89f30b4df ("win32: wrap socket close() with an exception
handler")
Signed-off-by: Marc-André Lureau <marcandre.lur...@redhat.com>
---
include/qemu/compiler.h | 6 ++++++
util/oslib-win32.c | 2 +-
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/include/qemu/compiler.h b/include/qemu/compiler.h
index a309f90c76..5c7f63f351 100644
--- a/include/qemu/compiler.h
+++ b/include/qemu/compiler.h
@@ -197,4 +197,10 @@
#define BUILTIN_SUBCLL_BROKEN
#endif
+#if __has_attribute(used)
+# define QEMU_USED __attribute__((used))
+#else
+# define QEMU_USED
+#endif
I first thought we could maybe do it without the detour via the QEMU_USED
macro, but seems like Clang just learnt this attribute with version 13:
https://releases.llvm.org/12.0.0/tools/clang/docs/AttributeReference.html
https://releases.llvm.org/13.0.0/tools/clang/docs/AttributeReference.html
(while GCC already has it in version 7).
So yes, this seems the right way to do this.
Reviewed-by: Thomas Huth <th...@redhat.com>