On 31/01/21 10:00 -0000, Martin Gansser wrote:
The issue has now been resolved with this patch:

+++ include/cxxtools/char.h     2021-01-30 18:28:23.877390000 +0100
@@ -68,9 +68,7 @@
            typedef int32_t value_type;

            //! Constructs a character with a value of 0.
-            Char()
-            : _value(0)
-            {}
+            Char() = default;

            //! Constructs a character using the given char as base for the 
character value.
            Char(char ch)
@@ -114,9 +112,6 @@
                return Char(0);
            }

-            Char& operator=(const Char& ch)
-            { _value = ch._value; return *this; }
-

Ah, I was looking at the upstream code which has already removed that.

            /**
             * @brief Returns the internal value (unsigned 32 bits) of this 
character.
             * @return The 32-bit-value of this character.
@@ -336,14 +331,14 @@
    inline char_traits<cxxtools::Char>::char_type*
    char_traits<cxxtools::Char>::move(char_type* s1, const char_type* s2, 
int_type n)
    {
-        return (cxxtools::Char*)std::memmove(s1, s2, n * 
sizeof(cxxtools::Char));
+        return static_cast<cxxtools::Char*>(std::memmove(static_cast<void*>(s1), 
static_cast<const void*>(s2), n * sizeof(cxxtools::Char))); 
    }


    inline char_traits<cxxtools::Char>::char_type*
    char_traits<cxxtools::Char>::copy(char_type* s1, const char_type* s2, 
size_t n)
    {
-        return (cxxtools::Char*)std::memcpy(s1, s2, n * 
sizeof(cxxtools::Char));
+        return static_cast<cxxtools::Char*>(std::memcpy(static_cast<void*>(s1), 
static_cast<const void*>(s2), n * sizeof(cxxtools::Char)));

These changes seem unnecessary, and would only hide bugs.

After removing the non-trivial operator= there should be no more
warning about using memmove and memcpy on Char objects.


_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org

Reply via email to