games-simulation/dangerdeep: Fix building with -Werror=terminate
authorPeter Levine <plevine457@gmail.com>
Sun, 23 Jul 2017 03:32:52 +0000 (23:32 -0400)
committerDavid Seifert <soap@gentoo.org>
Sun, 30 Jul 2017 09:09:38 +0000 (11:09 +0200)
Bug: https://bugs.gentoo.org/show_bug.cgi?id=610654
Package-Manager: Portage-2.3.6, Repoman-2.3.2
Closes: https://github.com/gentoo/gentoo/pull/5181

games-simulation/dangerdeep/dangerdeep-0.3.0.ebuild
games-simulation/dangerdeep/files/dangerdeep-0.3.0-gcc6.patch [new file with mode: 0644]

index d6b4d755ed93a99794e7aa37399751162df54a9f..8534a6930714239d8086af9e1ce936497024bbb8 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=5
@@ -29,7 +29,8 @@ src_prepare() {
                "${FILESDIR}"/${P}-build.patch \
                "${FILESDIR}"/${P}-gcc43.patch \
                "${FILESDIR}"/${P}-gcc47.patch \
-               "${FILESDIR}"/${P}-gcc44.patch
+               "${FILESDIR}"/${P}-gcc44.patch \
+               "${FILESDIR}"/${P}-gcc6.patch
        sed -i -e "/console_log.txt/ s:fopen.*:stderr;:" src/system.cpp || die
 }
 
diff --git a/games-simulation/dangerdeep/files/dangerdeep-0.3.0-gcc6.patch b/games-simulation/dangerdeep/files/dangerdeep-0.3.0-gcc6.patch
new file mode 100644 (file)
index 0000000..1634aa7
--- /dev/null
@@ -0,0 +1,38 @@
+Bug: https://bugs.gentoo.org/show_bug.cgi?id=610654
+Upstream Ticket: https://sourceforge.net/p/dangerdeep/patches/26/
+
+--- a/src/system.cpp
++++ b/src/system.cpp
+@@ -178,7 +178,7 @@
+       instance = this;
+ }
+-system::~system()
++system::~system() DTOR_NOEXCEPT
+ {
+       if (!instance) {
+               SDL_Quit();
+--- a/src/system.h
++++ b/src/system.h
+@@ -52,6 +52,12 @@
+ #define ASSERT(a,...)
+ #endif
++#if __cplusplus >= 201103L
++#define DTOR_NOEXCEPT noexcept(false)
++#else
++#define DTOR_NOEXCEPT
++#endif
++
+ class font;
+ class texture;
+@@ -61,7 +67,7 @@
+ public:
+       enum button_type { left_button=0x1, right_button=0x2, middle_button=0x4, wheel_up=0x8, wheel_down=0x10 };
+       system(double nearz_, double farz_, unsigned res_x=1024, unsigned res_y=768, bool fullscreen=true);
+-      ~system();
++      ~system() DTOR_NOEXCEPT;
+       void set_video_mode(unsigned res_x_, unsigned res_y_, bool fullscreen);
+       void swap_buffers();