From: "Michael R. Crusoe" <crusoe@debian.org>
Date: Wed, 11 Sep 2024 17:58:38 +0200
Subject: GCC 12+ fixes

Forwarded: not-needed

Similar to https://github.com/vgteam/vg/commit/fa824c1f5500a71ee215311e18049c46c50712b5
---
 deps/kff-cpp-api/kff_io.cpp                                         | 1 +
 deps/kff-cpp-api/main.cpp                                           | 1 +
 deps/libhandlegraph/src/include/handlegraph/serializable.hpp        | 1 +
 .../deps/libhandlegraph/src/include/handlegraph/serializable.hpp    | 1 +
 deps/sublinear-Li-Stephens/src/haplotype_manager.hpp                | 1 +
 deps/sublinear-Li-Stephens/src/haplotype_state_tree.hpp             | 3 ++-
 src/multipath_mapper.cpp                                            | 6 ++++--
 7 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/deps/kff-cpp-api/kff_io.cpp b/deps/kff-cpp-api/kff_io.cpp
index e23d396..76b4864 100644
--- a/deps/kff-cpp-api/kff_io.cpp
+++ b/deps/kff-cpp-api/kff_io.cpp
@@ -2,6 +2,7 @@
 #include <cassert>
 #include <cstring>
 #include <sstream>
+#include <cstdint>
 #include <math.h>
 
 #include <map>
diff --git a/deps/kff-cpp-api/main.cpp b/deps/kff-cpp-api/main.cpp
index bc4cf5c..59c3d0b 100644
--- a/deps/kff-cpp-api/main.cpp
+++ b/deps/kff-cpp-api/main.cpp
@@ -3,6 +3,7 @@
 #include <sstream>
 #include <string>
 #include <cstring>
+#include <cstdint>
 #include <map>
 
 #include "kff_io.hpp"
diff --git a/deps/libhandlegraph/src/include/handlegraph/serializable.hpp b/deps/libhandlegraph/src/include/handlegraph/serializable.hpp
index b16a753..a7f6ab8 100644
--- a/deps/libhandlegraph/src/include/handlegraph/serializable.hpp
+++ b/deps/libhandlegraph/src/include/handlegraph/serializable.hpp
@@ -8,6 +8,7 @@
  */
 
 #include <iostream>
+#include <cstdint>
 
 namespace handlegraph {
 
diff --git a/deps/libvgio/deps/libhandlegraph/src/include/handlegraph/serializable.hpp b/deps/libvgio/deps/libhandlegraph/src/include/handlegraph/serializable.hpp
index b16a753..a7f6ab8 100644
--- a/deps/libvgio/deps/libhandlegraph/src/include/handlegraph/serializable.hpp
+++ b/deps/libvgio/deps/libhandlegraph/src/include/handlegraph/serializable.hpp
@@ -8,6 +8,7 @@
  */
 
 #include <iostream>
+#include <cstdint>
 
 namespace handlegraph {
 
diff --git a/deps/sublinear-Li-Stephens/src/haplotype_manager.hpp b/deps/sublinear-Li-Stephens/src/haplotype_manager.hpp
index aac6d91..eee423e 100644
--- a/deps/sublinear-Li-Stephens/src/haplotype_manager.hpp
+++ b/deps/sublinear-Li-Stephens/src/haplotype_manager.hpp
@@ -8,6 +8,7 @@
 #include <vector>
 #include <string>
 #include <iostream>
+#include <cstdint>
 
 using namespace std;
 
diff --git a/deps/sublinear-Li-Stephens/src/haplotype_state_tree.hpp b/deps/sublinear-Li-Stephens/src/haplotype_state_tree.hpp
index e4b2283..5ed35a4 100644
--- a/deps/sublinear-Li-Stephens/src/haplotype_state_tree.hpp
+++ b/deps/sublinear-Li-Stephens/src/haplotype_state_tree.hpp
@@ -4,6 +4,7 @@
 #include "probability.hpp"
 #include "delay_multiplier.hpp"
 #include "haplotype_state_node.hpp"
+#include <cstdint>
 #include <unordered_set>
 
 using namespace std;
@@ -39,4 +40,4 @@ public:
   void set_initial_position(size_t position);
 };
 
-#endif
\ No newline at end of file
+#endif
diff --git a/src/multipath_mapper.cpp b/src/multipath_mapper.cpp
index 23e52a7..fe7aa3b 100644
--- a/src/multipath_mapper.cpp
+++ b/src/multipath_mapper.cpp
@@ -1836,8 +1836,10 @@ namespace vg {
                     std::swap(rescued_secondaries[i], rescued_secondaries[end - 1]);
                     std::swap(rescued_distances[i], rescued_distances[end - 1]);
                     std::swap(rescued_multiplicities[i], rescued_multiplicities[end - 1]);
-                    std::swap(duplicate[i], duplicate[end - 1]);
-                    
+                    // nb: cant std::swap bool vectors in new c++
+                    bool dupe_i = duplicate[i];
+                    duplicate[i] = duplicate[end - 1];
+                    duplicate[end - 1] = dupe_i;
                     end--;
                 }
                 else {
