summaryrefslogtreecommitdiff
path: root/vigra
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2012-03-29 14:03:08 +0200
committerStephan Bergmann <sbergman@redhat.com>2012-03-29 14:04:18 +0200
commit31d26fb9b85cd54267e1a5c0d5a3595e8bb4884c (patch)
tree45d858b996ff97e1d3071524029890add6d7ee8c /vigra
parent8431ad2d8b64400052b8e6e218117dd9fb72f316 (diff)
GCC 4.7 -Werror=enum-compare
Diffstat (limited to 'vigra')
-rw-r--r--vigra/makefile.mk7
-rw-r--r--vigra/vigra1.4.0-enumwarn.patch13
2 files changed, 20 insertions, 0 deletions
diff --git a/vigra/makefile.mk b/vigra/makefile.mk
index c8e4f7779809..6cee4b0c84d5 100644
--- a/vigra/makefile.mk
+++ b/vigra/makefile.mk
@@ -55,6 +55,13 @@ PATCH_FILES=$(TARFILE_NAME).patch
PATCH_FILES += vigra1.4.0-unused-parameters.patch
.END
+# At least GCC 4.7 treats more correctly now the type of enumerators prior to
+# the closing brace of the enum-specifier (see [dcl.enum] in the C++ 2003
+# Standard), leading to "comparison between <enum1> and <enum2> [-Werror=enum-
+# compare]" and "enumeral mismatch in conditional expression [-Werror]"
+# warnings:
+PATCH_FILES += vigra1.4.0-enumwarn.patch
+
CONFIGURE_DIR=
CONFIGURE_ACTION=
diff --git a/vigra/vigra1.4.0-enumwarn.patch b/vigra/vigra1.4.0-enumwarn.patch
new file mode 100644
index 000000000000..8ea1ed7890da
--- /dev/null
+++ b/vigra/vigra1.4.0-enumwarn.patch
@@ -0,0 +1,13 @@
+--- misc/vigra1.4.0/include/vigra/sized_int.hxx 2012-03-28 13:36:02.743956393 +0200
++++ misc/build/vigra1.4.0/include/vigra/sized_int.hxx 2012-03-28 13:35:44.956057143 +0200
+@@ -80,8 +80,8 @@
+ template<class LIST>
+ struct SelectBiggestIntegerType
+ {
+- enum { cursize = LIST::size,
+- nextsize = SelectBiggestIntegerType<typename LIST::next>::size,
++ enum { cursize = static_cast< int >(LIST::size),
++ nextsize = static_cast< int >(SelectBiggestIntegerType<typename LIST::next>::size),
+ size = (cursize < nextsize) ? nextsize : cursize };
+ typedef typename
+ IfBool<(cursize < nextsize),