media-sound/mumble: Fix build with GCC 4.9.
authorRyan Hill <rhill@gentoo.org>
Fri, 2 Oct 2015 01:41:14 +0000 (19:41 -0600)
committerRyan Hill <rhill@gentoo.org>
Fri, 2 Oct 2015 01:41:14 +0000 (19:41 -0600)
Gentoo-Bug: https://bugs.gentoo.org/532180

Package-Manager: portage-2.2.22
Signed-off-by: Ryan Hill <rhill@gentoo.org>
media-sound/mumble/files/mumble-1.2.8-gcc49.patch [new file with mode: 0644]
media-sound/mumble/mumble-1.2.8.ebuild

diff --git a/media-sound/mumble/files/mumble-1.2.8-gcc49.patch b/media-sound/mumble/files/mumble-1.2.8-gcc49.patch
new file mode 100644 (file)
index 0000000..cecb3d3
--- /dev/null
@@ -0,0 +1,26 @@
+https://bugs.gentoo.org/532180
+
+Avoid "jump to label crosses initialization" error.
+
+ Move variable "buffer" into the while loop to avoid a compile error
+ with g++ 4.9.0.
+
+ Although earlier compiler versions did accept the code, jumping into the
+ scope of an variable length array is not allowed:
+ http://gcc.gnu.org/onlinedocs/gcc-4.3.0/gcc/Variable-Length.html
+
+
+--- a/src/mumble/OSS.cpp
++++ b/src/mumble/OSS.cpp
+@@ -243,9 +243,9 @@ void OSSInput::run() {
+       eMicFormat = SampleShort;
+       initializeMixer();
+-      short buffer[iMicLength];
+-
+       while (bRunning) {
++              short buffer[iMicLength];
++
+               int len = static_cast<int>(iMicLength * iMicChannels * sizeof(short));
+               ssize_t l = read(fd, buffer, len);
+               if (l != len) {
index e457a05d5cca468fab6cdff18bf0c1cf9bfa990b..a0282bf6efa2f9fb59cb7454b1dd9cfb70cd11ff 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright 1999-2014 Gentoo Foundation
+# Copyright 1999-2015 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
@@ -47,6 +47,7 @@ DEPEND="${RDEPEND}
 
 PATCHES=(
        "${FILESDIR}"/${PN}-1.2.4-speech-dispatcher.patch
+       "${FILESDIR}"/${PN}-1.2.8-gcc49.patch
 )
 
 S="${WORKDIR}/${MY_P}"