Merge pull request #48 from thrimbor/warning_reduction
authorJakob Petsovits <jpetso@users.noreply.github.com>
Mon, 16 Jul 2018 03:33:46 +0000 (23:33 -0400)
committerGitHub <noreply@github.com>
Mon, 16 Jul 2018 03:33:46 +0000 (23:33 -0400)
Warning fixes

CMakeLists.txt
cppcodec/base32_crockford.hpp
cppcodec/data/access.hpp
cppcodec/detail/base32.hpp
cppcodec/detail/base64.hpp
cppcodec/detail/hex.hpp
cppcodec/detail/stream_codec.hpp
cppcodec/hex_lower.hpp
cppcodec/hex_upper.hpp
test/benchmark_cppcodec.cpp
test/minimal_decode.cpp

index 3ed0c67..77c7d1e 100644 (file)
@@ -19,7 +19,7 @@ if (MSVC)
   # MSVC will respect CMAKE_CXX_STANDARD for CMake >= 3.10 and MSVC >= 19.0.24215
   # (VS 2017 15.3). Older versions will use the compiler default, which should be
   # fine for anything except ancient MSVC versions.
-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W3")
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4")
 else()
   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -pedantic")
 
index 0966da8..1952880 100644 (file)
@@ -63,7 +63,7 @@ public:
 
     static CPPCODEC_ALWAYS_INLINE constexpr bool generates_padding() { return false; }
     static CPPCODEC_ALWAYS_INLINE constexpr bool requires_padding() { return false; }
-    static CPPCODEC_ALWAYS_INLINE constexpr bool is_padding_symbol(char c) { return false; }
+    static CPPCODEC_ALWAYS_INLINE constexpr bool is_padding_symbol(char /*c*/) { return false; }
     static CPPCODEC_ALWAYS_INLINE constexpr bool is_eof_symbol(char c) { return c == '\0'; }
 
     static CPPCODEC_ALWAYS_INLINE constexpr bool should_ignore(char c) {
index 5f841d6..de02a7f 100644 (file)
@@ -49,7 +49,7 @@ CPPCODEC_ALWAYS_INLINE size_t size(const T& t) { return t.size(); }
 
 template <typename T, size_t N>
 CPPCODEC_ALWAYS_INLINE constexpr size_t size(const T (&t)[N]) noexcept {
-    return N * sizeof(t[0]);
+    return (void)t, N * sizeof(t[0]);
 }
 
 class general_t {};
@@ -137,7 +137,7 @@ CPPCODEC_ALWAYS_INLINE void put(Result& result, empty_result_state&, uint8_t c)
 template <typename T>
 constexpr auto data_is_mutable(T* t) -> decltype(t->data()[size_t(0)] = 'x', bool())
 {
-    return true;
+    return (void)t, true;
 }
 constexpr bool data_is_mutable(...) { return false; }
 
@@ -161,7 +161,7 @@ public:
         // Conditional code paths are slow so we only do it once, at the start.
         m_buffer = result.data();
     }
-    CPPCODEC_ALWAYS_INLINE void put(Result& result, char c)
+    CPPCODEC_ALWAYS_INLINE void put(Result& /*result*/, char c)
     {
         m_buffer[m_offset++] = c;
     }
@@ -231,7 +231,7 @@ CPPCODEC_ALWAYS_INLINE void finish(Result& result, direct_data_access_result_sta
 template <typename T>
 constexpr auto array_access_is_mutable(T* t) -> decltype((*t)[size_t(0)] = 'x', bool())
 {
-    return true;
+    return (void)t, true;
 }
 constexpr bool array_access_is_mutable(...) { return false; }
 
index 1a28e53..7113b7a 100644 (file)
@@ -92,7 +92,7 @@ public:
     template <uint8_t I>
     static CPPCODEC_ALWAYS_INLINE
     uint8_if<I != 1 && I != 3 && I != 4 && I != 6> index_last(
-            const uint8_t* /*binary block*/)
+            const uint8_t* /*binary block*/)
     {
         throw std::domain_error("invalid last encoding symbol index in a tail");
     }
index 218123c..b6db6d7 100644 (file)
@@ -80,7 +80,7 @@ public:
 
     template <uint8_t I>
     static CPPCODEC_ALWAYS_INLINE uint8_if<I != 1 && I != 2> index_last(
-            const uint8_t* /*binary block*/)
+            const uint8_t* /*binary block*/)
     {
         throw std::domain_error("invalid last encoding symbol index in a tail");
     }
index f2ce677..f86be93 100644 (file)
@@ -68,14 +68,14 @@ public:
 
     template <uint8_t I>
     static CPPCODEC_ALWAYS_INLINE constexpr uint8_if<I == 0> index_last(
-            const uint8_t* /*binary block*/) noexcept
+            const uint8_t* /*binary block*/) noexcept
     {
         return 0;
     }
 
     template <uint8_t I>
     static CPPCODEC_ALWAYS_INLINE uint8_if<I != 0> index_last(
-            const uint8_t* /*binary block*/)
+            const uint8_t* /*binary block*/)
     {
         throw std::domain_error("invalid last encoding symbol index in a tail");
     }
index d6fb798..8b5cec5 100644 (file)
@@ -203,7 +203,7 @@ struct index_if_in_alphabet {
 };
 template <typename CodecVariant, alphabet_index_t InvalidIdx>
 struct index_if_in_alphabet<CodecVariant, InvalidIdx, 0> { // terminating specialization
-    static CPPCODEC_ALWAYS_INLINE constexpr alphabet_index_t for_symbol(char symbol)
+    static CPPCODEC_ALWAYS_INLINE constexpr alphabet_index_t for_symbol(char /*symbol*/)
     {
         return InvalidIdx;
     }
@@ -241,7 +241,7 @@ struct alphabet_index_info
     static constexpr const alphabet_index_t padding_idx = 1 << 8;
     static constexpr const alphabet_index_t invalid_idx = 1 << 9;
     static constexpr const alphabet_index_t eof_idx = 1 << 10;
-    static constexpr const alphabet_index_t stop_character_mask = ~0xFF;
+    static constexpr const alphabet_index_t stop_character_mask = 0xFF00;
 
     static constexpr const bool padding_allowed = padding_searcher<
             CodecVariant, num_possible_symbols>::exists_padding_symbol();
index 9b53502..dfe7652 100644 (file)
@@ -59,7 +59,7 @@ public:
     static CPPCODEC_ALWAYS_INLINE constexpr bool generates_padding() { return false; }
     // FIXME: doesn't require padding, but requires a multiple of the encoded block size (2)
     static CPPCODEC_ALWAYS_INLINE constexpr bool requires_padding() { return false; }
-    static CPPCODEC_ALWAYS_INLINE constexpr bool is_padding_symbol(char c) { return false; }
+    static CPPCODEC_ALWAYS_INLINE constexpr bool is_padding_symbol(char /*c*/) { return false; }
     static CPPCODEC_ALWAYS_INLINE constexpr bool is_eof_symbol(char c) { return c == '\0'; }
 
     // Sometimes hex strings include whitespace, but this variant forbids it.
index 4fa6f26..1eef755 100644 (file)
@@ -59,7 +59,7 @@ public:
     static CPPCODEC_ALWAYS_INLINE constexpr bool generates_padding() { return false; }
     // FIXME: doesn't require padding, but requires a multiple of the encoded block size (2)
     static CPPCODEC_ALWAYS_INLINE constexpr bool requires_padding() { return false; }
-    static CPPCODEC_ALWAYS_INLINE constexpr bool is_padding_symbol(char c) { return false; }
+    static CPPCODEC_ALWAYS_INLINE constexpr bool is_padding_symbol(char /*c*/) { return false; }
     static CPPCODEC_ALWAYS_INLINE constexpr bool is_eof_symbol(char c) { return c == '\0'; }
 
     // Sometimes hex strings include whitespace, but this variant forbids it.
index 3d32206..7bf37bd 100644 (file)
@@ -153,7 +153,7 @@ void benchmark(std::ostream& stream, const std::vector<size_t>& decoded_sizes)
     stream.flags(flags);
 }
 
-int main(int argc, char *argv[])
+int main()
 {
     std::vector<size_t> decoded_sizes = {
         1, 4, 8, 16, 32, 64, 128, 256, 2048, 4096, 32768
index 3e21c62..743f320 100644 (file)
@@ -24,7 +24,7 @@
 #include <cppcodec/base64_rfc4648.hpp>
 #include <iostream>
 
-int main(int argc, char *argv[])
+int main()
 {
     constexpr const char encoded[] = { "YW55IGNhcm5hbCBwbGVhc3U=" };
     char decoded[cppcodec::base64_rfc4648::decoded_max_size(sizeof(encoded))];