diff options
Diffstat (limited to 'media-plugins/mda-lv2/files/mda-lv2-1.2.10-strict-aliasing.patch')
-rw-r--r-- | media-plugins/mda-lv2/files/mda-lv2-1.2.10-strict-aliasing.patch | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/media-plugins/mda-lv2/files/mda-lv2-1.2.10-strict-aliasing.patch b/media-plugins/mda-lv2/files/mda-lv2-1.2.10-strict-aliasing.patch new file mode 100644 index 000000000000..d8e6c8e605aa --- /dev/null +++ b/media-plugins/mda-lv2/files/mda-lv2-1.2.10-strict-aliasing.patch @@ -0,0 +1,37 @@ +https://gitlab.com/drobilla/mda-lv2/-/commit/ac0590c5a8f84f9edcd6817e44976ad75fccb252 + +From ac0590c5a8f84f9edcd6817e44976ad75fccb252 Mon Sep 17 00:00:00 2001 +From: David Robillard <d@drobilla.net> +Date: Tue, 16 Aug 2022 17:04:16 -0400 +Subject: [PATCH] Fix strict aliasing violation + +Generally, I maintain this as a faithful port with minimal changes, but in this +case, it's just filling a float up with garbage anyway, so the worst case can't +be that bad. +--- a/meson/suppressions/meson.build ++++ b/meson/suppressions/meson.build +@@ -82,11 +82,5 @@ if is_variable('cpp') + endif + endif + +- if cpp.get_id() == 'gcc' +- cpp_suppressions += [ +- '-Wno-strict-aliasing', +- ] +- endif +- + cpp_suppressions = cpp.get_supported_arguments(cpp_suppressions) + endif +--- a/src/mdaJX10.cpp ++++ b/src/mdaJX10.cpp +@@ -468,7 +468,7 @@ void mdaJX10::processReplacing(float **inputs, float **outputs, int32_t sampleFr + + noise = (noise * 196314165) + 907633515; + r = (noise & 0x7FFFFF) + 0x40000000; //generate noise + fast convert to float +- w = *(float *)&r; ++ memcpy(&w, &r, sizeof(float)); + w = ww * (w - 3.0f); + + if(--k<0) +-- +GitLab |