diff --git a/meson.build b/meson.build index 9859efd6..9e1eddcf 100644 --- a/meson.build +++ b/meson.build @@ -200,14 +200,7 @@ if with_bitbridge wine_threads_dep, xcb_dep ], - # FIXME: 32-bit winegcc defines `__stdcall` differently than the 64-bit - # version, and one of the changes is the inclusion of - # `__atribute__((__force_align_arg_pointer__))`. For whetever reason - # this causes GCC to complain when using function pointers with the - # `__stdcall` calling convention in template arguments, although it - # otherwise works just fine. We don't ignore any warnings in the - # regular host application so this should not cause any issues! - cpp_args : compiler_options + ['-m32', '-Wno-ignored-attributes'], + cpp_args : compiler_options + ['-m32'], link_args : ['-m32'] ) @@ -225,7 +218,7 @@ if with_bitbridge wine_threads_dep, xcb_dep ], - cpp_args : compiler_options + ['-m32', '-Wno-ignored-attributes'], + cpp_args : compiler_options + ['-m32'], link_args : ['-m32'] ) endif diff --git a/src/wine-host/bridges/vst2.h b/src/wine-host/bridges/vst2.h index b1c700c3..c3e1ed16 100644 --- a/src/wine-host/bridges/vst2.h +++ b/src/wine-host/bridges/vst2.h @@ -153,6 +153,10 @@ class Vst2Bridge { */ Configuration config; + // FIXME: This emits `-Wignored-attributes` as of Wine 5.22 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wignored-attributes" + /** * The shared library handle of the VST plugin. I sadly could not get * Boost.DLL to work here, so we'll just load the VST plugisn by hand. @@ -160,6 +164,8 @@ class Vst2Bridge { std::unique_ptr, decltype(&FreeLibrary)> plugin_handle; +#pragma GCC diagnostic pop + /** * The loaded plugin's `AEffect` struct, obtained using the above library * handle. diff --git a/src/wine-host/editor.cpp b/src/wine-host/editor.cpp index 4ec40243..da5234fe 100644 --- a/src/wine-host/editor.cpp +++ b/src/wine-host/editor.cpp @@ -170,6 +170,9 @@ Editor::Editor(const Configuration& config, ShowWindow(win32_handle.get(), SW_SHOWNORMAL); if (config.editor_double_embed) { + // FIXME: This emits `-Wignored-attributes` as of Wine 5.22 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wignored-attributes" // As explained above, we can't do this directly in the initializer list win32_child_handle = std::unique_ptr, decltype(&DestroyWindow)>( @@ -179,6 +182,7 @@ Editor::Editor(const Configuration& config, client_area.width, client_area.height, win32_handle.get(), nullptr, GetModuleHandle(nullptr), this), DestroyWindow); +#pragma GCC diagnostic pop ShowWindow(win32_child_handle->get(), SW_SHOWNORMAL); } diff --git a/src/wine-host/editor.h b/src/wine-host/editor.h index e7d58ec8..c5989fb5 100644 --- a/src/wine-host/editor.h +++ b/src/wine-host/editor.h @@ -197,6 +197,10 @@ class Editor { */ const WindowClass window_class; + // FIXME: This emits `-Wignored-attributes` as of Wine 5.22 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wignored-attributes" + /** * The handle for the window created through Wine that the plugin uses to * embed itself in. @@ -216,6 +220,8 @@ class Editor { std::unique_ptr, decltype(&DestroyWindow)>> win32_child_handle; +#pragma GCC diagnostic pop + /** * The Win32 API will block the `DispatchMessage` call when opening e.g. a * dropdown, but it will still allow timers to be run so the GUI can still diff --git a/src/wine-host/utils.h b/src/wine-host/utils.h index 5c5a14ed..d9683ef7 100644 --- a/src/wine-host/utils.h +++ b/src/wine-host/utils.h @@ -181,12 +181,18 @@ class Win32Thread { Win32Thread& operator=(Win32Thread&&); private: + // FIXME: This emits `-Wignored-attributes` as of Wine 5.22 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wignored-attributes" + /** * The handle for the thread that is running, will be a null pointer if this * class was constructed with the default constructor. */ std::unique_ptr, decltype(&CloseHandle)> handle; + +#pragma GCC diagnostic pop }; /**