Detailed steps on how to reproduce the bug
When running a debug build of a Standalone plugin built with Zig, the following was detected:
thread 25760 panic: reference binding to misaligned address 0x19433fe457 for type 'const GUID' (aka 'const _GUID'), which requires 4 byte alignment
C:\Users\zukke\vst-dev\juzi\examples\audio-plugin\zig-pkg\N-V-__8AAG2KgAWQaLnIKAeur76RI1tJKMF140PCwUgGQQGm\modules\juce_audio_devices\native\juce_WASAPI_windows.cpp:932: 0x7ff6facac623 in juce::WasapiClasses::WASAPIDeviceBase::tryInitialisingWithBufferSize (plugin_shared_lib.lib)
const bool isFloat = format->Format.wFormatTag == WAVE_FORMAT_EXTENSIBLE && format->SubFormat == KSDATAFORMAT_SUBTYPE_IEEE_FLOAT;
What is the expected behaviour?
There should be no undefined behaviour.
Operating systems
Windows
What versions of the operating systems?
Windows 11
Architectures
x86_64
Stacktrace
thread 25760 panic: reference binding to misaligned address 0x19433fe457 for type 'const GUID' (aka 'const _GUID'), which requires 4 byte alignment
C:\Users\zukke\vst-dev\juzi\examples\audio-plugin\zig-pkg\N-V-__8AAG2KgAWQaLnIKAeur76RI1tJKMF140PCwUgGQQGm\modules\juce_audio_devices\native\juce_WASAPI_windows.cpp:932: 0x7ff6facac623 in juce::WasapiClasses::WASAPIDeviceBase::tryInitialisingWithBufferSize (plugin_shared_lib.lib)
const bool isFloat = format->Format.wFormatTag == WAVE_FORMAT_EXTENSIBLE && format->SubFormat == KSDATAFORMAT_SUBTYPE_IEEE_FLOAT;
C:\Users\zukke\vst-dev\juzi\examples\audio-plugin\zig-pkg\N-V-__8AAG2KgAWQaLnIKAeur76RI1tJKMF140PCwUgGQQGm\modules\juce_audio_devices\native\juce_WASAPI_windows.cpp:481: 0x7ff6facabdac in juce::WasapiClasses::WASAPIDeviceBase::openClient (plugin_shared_lib.lib)
if (client == nullptr || ! tryInitialisingWithBufferSize (bufferSizeSamples))
C:\Users\zukke\vst-dev\juzi\examples\audio-plugin\zig-pkg\N-V-__8AAG2KgAWQaLnIKAeur76RI1tJKMF140PCwUgGQQGm\modules\juce_audio_devices\native\juce_WASAPI_windows.cpp:957: 0x7ff6facab0d4 in juce::WasapiClasses::WASAPIInputDevice::open (plugin_shared_lib.lib)
return openClient (newSampleRate, newChannels, bufferSizeSamples)
C:\Users\zukke\vst-dev\juzi\examples\audio-plugin\zig-pkg\N-V-__8AAG2KgAWQaLnIKAeur76RI1tJKMF140PCwUgGQQGm\modules\juce_audio_devices\native\juce_WASAPI_windows.cpp:1412: 0x7ff6faca6f67 in juce::WasapiClasses::WASAPIAudioIODevice::open (plugin_shared_lib.lib)
if (inputDevice != nullptr && ! inputDevice->open (currentSampleRate, inputChannels, bufferSizeSamples))
C:\Users\zukke\vst-dev\juzi\examples\audio-plugin\zig-pkg\N-V-__8AAG2KgAWQaLnIKAeur76RI1tJKMF140PCwUgGQQGm\modules\juce_audio_devices\audio_io\juce_AudioDeviceManager.cpp:889: 0x7ff6fabf6191 in juce::AudioDeviceManager::setAudioDeviceSetup (plugin_shared_lib.lib)
error = currentAudioDevice->open (currentSetup.inputChannels,
C:\Users\zukke\vst-dev\juzi\examples\audio-plugin\zig-pkg\N-V-__8AAG2KgAWQaLnIKAeur76RI1tJKMF140PCwUgGQQGm\modules\juce_audio_devices\audio_io\juce_AudioDeviceManager.cpp:477: 0x7ff6fabf2e02 in juce::AudioDeviceManager::initialiseDefault (plugin_shared_lib.lib)
return setAudioDeviceSetup (setup, false);
C:\Users\zukke\vst-dev\juzi\examples\audio-plugin\zig-pkg\N-V-__8AAG2KgAWQaLnIKAeur76RI1tJKMF140PCwUgGQQGm\modules\juce_audio_devices\audio_io\juce_AudioDeviceManager.cpp:399: 0x7ff6fabf3dc7 in juce::AudioDeviceManager::initialise (plugin_shared_lib.lib)
return initialiseDefault (preferredDeviceName, preferredSetupOptions);
C:\Users\zukke\vst-dev\juzi\examples\audio-plugin\zig-pkg\N-V-__8AAG2KgAWQaLnIKAeur76RI1tJKMF140PCwUgGQQGm\modules\juce_audio_plugin_client\Standalone\juce_StandaloneFilterWindow.h:357: 0x7ff6f991d71e in juce::StandalonePluginHolder::reloadAudioDeviceState (juce_audio_plugin_client_Standalone.obj)
deviceManager.initialise (enableAudioInput ? inputChannels : 0,
C:\Users\zukke\vst-dev\juzi\examples\audio-plugin\zig-pkg\N-V-__8AAG2KgAWQaLnIKAeur76RI1tJKMF140PCwUgGQQGm\modules\juce_audio_plugin_client\Standalone\juce_StandaloneFilterWindow.h:601: 0x7ff6f991cfdc in juce::StandalonePluginHolder::setupAudioDevices (juce_audio_plugin_client_Standalone.obj)
reloadAudioDeviceState (enableAudioInput, preferredDefaultDeviceName, preferredSetupOptions);
C:\Users\zukke\vst-dev\juzi\examples\audio-plugin\zig-pkg\N-V-__8AAG2KgAWQaLnIKAeur76RI1tJKMF140PCwUgGQQGm\modules\juce_audio_plugin_client\Standalone\juce_StandaloneFilterWindow.h:121: 0x7ff6f9919090 in juce::StandalonePluginHolder::init (juce_audio_plugin_client_Standalone.obj)
setupAudioDevices (enableAudioInput, preferredDefaultDeviceName, options.get());
C:\Users\zukke\vst-dev\juzi\examples\audio-plugin\zig-pkg\N-V-__8AAG2KgAWQaLnIKAeur76RI1tJKMF140PCwUgGQQGm\modules\juce_audio_plugin_client\Standalone\juce_StandaloneFilterWindow.h:116: 0x7ff6f9917ddd in juce::StandalonePluginHolder::StandalonePluginHolder (juce_audio_plugin_client_Standalone.obj)
init (audioInputRequired, preferredDefaultDeviceName);
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\include\memory:3630: 0x7ff6f99174fd in std::make_unique<juce::StandalonePluginHolder,juce::PropertiesFile *,bool,juce::String,std::nullptr_t,const juce::Arrayjuce::StandalonePluginHolder::PluginInOuts,juce::DummyCriticalSection,0 &,const bool &,0> (juce_audio_plugin_client_Standalone.obj)
return unique_ptr<_Ty>(new _Ty(_STD forward<_Types>(_Args)...));
C:\Users\zukke\vst-dev\juzi\examples\audio-plugin\zig-pkg\N-V-__8AAG2KgAWQaLnIKAeur76RI1tJKMF140PCwUgGQQGm\modules\juce_audio_plugin_client\juce_audio_plugin_client_Standalone.cpp:121: 0x7ff6f9905217 in juce::StandaloneFilterApp::createPluginHolder (juce_audio_plugin_client_Standalone.obj)
return std::make_unique<StandalonePluginHolder> (appProperties.getUserSettings(),
C:\Users\zukke\vst-dev\juzi\examples\audio-plugin\zig-pkg\N-V-__8AAG2KgAWQaLnIKAeur76RI1tJKMF140PCwUgGQQGm\modules\juce_audio_plugin_client\juce_audio_plugin_client_Standalone.cpp:99: 0x7ff6f9904e18 in juce::StandaloneFilterApp::createWindow (juce_audio_plugin_client_Standalone.obj)
return new StandaloneFilterWindow (getApplicationName(),
C:\Users\zukke\vst-dev\juzi\examples\audio-plugin\zig-pkg\N-V-__8AAG2KgAWQaLnIKAeur76RI1tJKMF140PCwUgGQQGm\modules\juce_audio_plugin_client\juce_audio_plugin_client_Standalone.cpp:132: 0x7ff6f99041ce in juce::StandaloneFilterApp::initialise (juce_audio_plugin_client_Standalone.obj)
mainWindow = rawToUniquePtr (createWindow());
C:\Users\zukke\vst-dev\juzi\examples\audio-plugin\zig-pkg\N-V-__8AAG2KgAWQaLnIKAeur76RI1tJKMF140PCwUgGQQGm\modules\juce_events\messages\juce_ApplicationBase.cpp:312: 0x7ff6fa4a10de in juce::JUCEApplicationBase::initialiseApp (plugin_shared_lib.lib)
initialise (getCommandLineParameters());
C:\Users\zukke\vst-dev\juzi\examples\audio-plugin\zig-pkg\N-V-__8AAG2KgAWQaLnIKAeur76RI1tJKMF140PCwUgGQQGm\modules\juce_gui_basics\application\juce_Application.cpp:97: 0x7ff6fa232a34 in juce::JUCEApplication::initialiseApp (plugin_shared_lib.lib)
if (JUCEApplicationBase::initialiseApp())
C:\Users\zukke\vst-dev\juzi\examples\audio-plugin\zig-pkg\N-V-__8AAG2KgAWQaLnIKAeur76RI1tJKMF140PCwUgGQQGm\modules\juce_events\messages\juce_ApplicationBase.cpp:271: 0x7ff6fa4a0c31 in juce::JUCEApplicationBase::main (plugin_shared_lib.lib)
if (! app->initialiseApp())
C:\Users\zukke\vst-dev\juzi\examples\audio-plugin\zig-pkg\N-V-__8AAG2KgAWQaLnIKAeur76RI1tJKMF140PCwUgGQQGm\modules\juce_audio_plugin_client\juce_audio_plugin_client_Standalone.cpp:234: 0x7ff6f9902d53 in WinMain (juce_audio_plugin_client_Standalone.obj)
JUCE_MAIN_FUNCTION_DEFINITION
Plug-in formats (if applicable)
Standalone
Plug-in host applications (DAWs) (if applicable)
No response
Testing on the develop branch
The bug is present on the develop branch
Code of Conduct
Detailed steps on how to reproduce the bug
When running a debug build of a Standalone plugin built with Zig, the following was detected:
What is the expected behaviour?
There should be no undefined behaviour.
Operating systems
Windows
What versions of the operating systems?
Windows 11
Architectures
x86_64
Stacktrace
Plug-in formats (if applicable)
Standalone
Plug-in host applications (DAWs) (if applicable)
No response
Testing on the
developbranchThe bug is present on the
developbranchCode of Conduct