summaryrefslogtreecommitdiff
path: root/external/boost/ubsan.patch.0
blob: 2dfd2cf673bc04df953782d6559da9d5455f3446 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Work around -fsanitize=bool and -fsanitize=nonnull-attribute

--- boost/algorithm/string/find_iterator.hpp
+++ boost/algorithm/string/find_iterator.hpp
@@ -240,7 +240,7 @@
                 m_Match(Other.m_Match),
                 m_Next(Other.m_Next),
                 m_End(Other.m_End),
-                m_bEof(Other.m_bEof)
+                m_bEof(Other.eof())
             {}
 
             //! Constructor
--- boost/circular_buffer/base.hpp
+++ boost/circular_buffer/base.hpp
@@ -2355,7 +2355,7 @@
     //! Add <code>n</code> to the pointer.
     template <class Pointer>
     Pointer add(Pointer p, difference_type n) const {
-        return p + (n < (m_end - p) ? n : n - capacity());
+        return p + (n < (m_end - p) ? n : difference_type(n - capacity()));
     }
 
     //! Subtract <code>n</code> from the pointer.
--- boost/circular_buffer/debug.hpp
+++ boost/circular_buffer/debug.hpp
@@ -34,7 +34,7 @@
 
 template <class T>
 inline void do_fill_uninitialized_memory(T* data, std::size_t size_in_bytes) BOOST_NOEXCEPT {
-    std::memset(static_cast<void*>(data), UNINITIALIZED, size_in_bytes);
+    if (size_in_bytes != 0) std::memset(static_cast<void*>(data), UNINITIALIZED, size_in_bytes);
 }
 
 template <class T>