From b6a989ff87da578035b488b934230c9b56309e8e Mon Sep 17 00:00:00 2001
From: Ansgar Burchardt <Ansgar.Burchardt@tu-dresden.de>
Date: Fri, 7 Jun 2019 16:00:40 +0200
Subject: [PATCH] work around ADOL-C's comparison operators returning an `int`

Reference: https://gitlab.com/adol-c/adol-c/issues/18
---
 .gitlab-ci.yml                                |  1 +
 dune-common-densematrix-adolc-workaround.diff | 13 +++++++++++++
 2 files changed, 14 insertions(+)
 create mode 100644 dune-common-densematrix-adolc-workaround.diff

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index bb7213c..79bbc4a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,6 +1,7 @@
 ---
 # Install external dependencies
 before_script:
+  - patch -d /duneci/modules/dune-common -p1 < dune-common-densematrix-adolc-workaround.diff
   - duneci-install-module https://git.imp.fu-berlin.de/agnumpde/dune-matrix-vector.git
   - duneci-install-module https://git.imp.fu-berlin.de/agnumpde/dune-fufem.git
   - duneci-install-module https://git.imp.fu-berlin.de/agnumpde/dune-solvers.git
diff --git a/dune-common-densematrix-adolc-workaround.diff b/dune-common-densematrix-adolc-workaround.diff
new file mode 100644
index 0000000..da95395
--- /dev/null
+++ b/dune-common-densematrix-adolc-workaround.diff
@@ -0,0 +1,13 @@
+diff --git a/dune/common/densematrix.hh b/dune/common/densematrix.hh
+index b03bbb0b..917ecef9 100644
+--- a/dune/common/densematrix.hh
++++ b/dune/common/densematrix.hh
+@@ -897,7 +897,7 @@ namespace Dune
+         for (size_type k=i+1; k<A.rows(); k++)
+         {
+           auto abs = fvmeta::absreal(A[k][i]);
+-          auto mask = abs > pivmax;
++          bool mask = abs > pivmax;
+           pivmax = Simd::cond(mask, abs, pivmax);
+           imax   = Simd::cond(mask, simd_index_type(k), imax);
+         }
-- 
GitLab