diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2012-03-29 14:03:08 +0200 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2012-03-29 14:04:18 +0200 |
commit | 31d26fb9b85cd54267e1a5c0d5a3595e8bb4884c (patch) | |
tree | 45d858b996ff97e1d3071524029890add6d7ee8c | |
parent | 8431ad2d8b64400052b8e6e218117dd9fb72f316 (diff) |
GCC 4.7 -Werror=enum-compare
-rw-r--r-- | vigra/makefile.mk | 7 | ||||
-rw-r--r-- | vigra/vigra1.4.0-enumwarn.patch | 13 |
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), |