From 7df498c828b36259397e2dd2769d99e7f30f7470 Mon Sep 17 00:00:00 2001 From: David Ostrovsky Date: Thu, 3 Mar 2016 22:42:41 +0100 Subject: [PATCH] Fix coinmp on MSVC 14.0 Iterator category tags carry information that can be used to select the most efficient algorithms for the specific requirement set that is implied by the category. OsiCuts defines bidirectional category tag, but doesn't implement operator--(). This is illegal: [1]. * [1] http://paste.openstack.org/show/489235 Change-Id: I68a6d297d5c33848c4b8a324e081c5118fd936a4 Reviewed-on: https://gerrit.libreoffice.org/22882 Reviewed-by: Michael Stahl Tested-by: Jenkins --- external/coinmp/UnpackedTarball_coinmp.mk | 1 + external/coinmp/osi_cuts_iterator.patch.0 | 12 ++++++++++++ 2 files changed, 13 insertions(+) create mode 100755 external/coinmp/osi_cuts_iterator.patch.0 diff --git a/external/coinmp/UnpackedTarball_coinmp.mk b/external/coinmp/UnpackedTarball_coinmp.mk index 468589b47d12..98d544034ff4 100644 --- a/external/coinmp/UnpackedTarball_coinmp.mk +++ b/external/coinmp/UnpackedTarball_coinmp.mk @@ -18,6 +18,7 @@ $(eval $(call gb_UnpackedTarball_fix_end_of_line,coinmp,\ $(eval $(call gb_UnpackedTarball_set_patchlevel,coinmp,0)) $(eval $(call gb_UnpackedTarball_add_patches,coinmp,\ + external/coinmp/osi_cuts_iterator.patch.0 \ external/coinmp/android.build.patch.1 \ external/coinmp/no-binaries.patch.1 \ external/coinmp/werror-format-security.patch.0 \ diff --git a/external/coinmp/osi_cuts_iterator.patch.0 b/external/coinmp/osi_cuts_iterator.patch.0 new file mode 100755 index 000000000000..42ed5afdcf83 --- /dev/null +++ b/external/coinmp/osi_cuts_iterator.patch.0 @@ -0,0 +1,12 @@ +diff -ru coinmp.orig/Osi/src/Osi/OsiCuts.hpp coinmp/Osi/src/Osi/OsiCuts.hpp +--- Osi/src/Osi/OsiCuts.hpp 2011-06-13 17:08:11.000000000 +0200 ++++ Osi/src/Osi/OsiCuts.hpp 2016-03-03 22:21:04.669838200 +0100 +@@ -74,7 +74,7 @@ + class const_iterator { + friend class OsiCuts; + public: +- typedef std::bidirectional_iterator_tag iterator_category; ++ typedef std::forward_iterator_tag iterator_category; + typedef OsiCut* value_type; + typedef size_t difference_type; + typedef OsiCut ** pointer;