|
From: | Thomas Huth |
Subject: | Re: [PATCH] win32: avoid discarding the exception handler |
Date: | Mon, 25 Sep 2023 13:56:56 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 |
On 25/09/2023 13.39, marcandre.lureau@redhat.com wrote:
From: Marc-André Lureau <marcandre.lureau@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.lureau@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 <thuth@redhat.com>
[Prev in Thread] | Current Thread | [Next in Thread] |