minio-cpp icon indicating copy to clipboard operation
minio-cpp copied to clipboard

Implicit conversion warnings

Open kobalicek opened this issue 1 year ago • 0 comments

There is still bunch of warnings regarding implicit conversion. Let's keep track of these:

minio-cpp/src/signer.cc:71:8: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned long') [-Wsign-conversion]
   69 |   HMAC(EVP_sha256(), key.data(), static_cast<int>(key.size()),
      |   ~~~~
   70 |        reinterpret_cast<unsigned char const*>(data.data()),
   71 |        static_cast<int>(data.size()), hash.data(), &hash_len);
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
minio-cpp/src/client.cc:397:21: warning: implicit conversion changes signedness: 'long' to 'size_t' (aka 'unsigned long') [-Wsign-conversion]
  397 |         part_size = object_size - uploaded_size;
      |                     ^~~~~~~~~~~ ~
minio-cpp/src/utils.cc:590:20: warning: implicit conversion changes signedness: 'size_t' (aka 'unsigned long') to 'streamsize' (aka 'long') [-Wsign-conversion]
  590 |   stream.read(buf, size);
      |          ~~~~      ^~~~
minio-cpp/src/utils.cc:591:23: warning: implicit conversion changes signedness: 'streamsize' (aka 'long') to 'size_t' (aka 'unsigned long') [-Wsign-conversion]
  591 |   bytes_read = stream.gcount();
      |              ~ ~~~~~~~^~~~~~~~
minio-cpp/src/utils.cc:630:63: warning: implicit conversion changes signedness: 'long' to 'size_t' (aka 'unsigned long') [-Wsign-conversion]
  630 |   if (static_cast<long>(part_size) > object_size) part_size = object_size;
      |                                                             ~ ^~~~~~~~~~~
minio-cpp/src/utils.cc:632:27: warning: implicit conversion changes signedness: 'long' to 'size_t' (aka 'unsigned long') [-Wsign-conversion]
  632 |       (part_size > 0) ? ((object_size + part_size - 1) / part_size) : 1);
      |                           ^~~~~~~~~~~ ~
1 warning generated.
minio-cpp/src/args.cc:301:21: warning: implicit conversion changes signedness: 'long' to 'size_t' (aka 'unsigned long') [-Wsign-conversion]
  301 |   this->part_size = part_size;
      |                   ~ ^~~~~~~~~
minio-cpp/src/args.cc:382:10: warning: implicit conversion changes signedness: 'const long' to 'size_t' (aka 'unsigned long') [-Wsign-conversion]
  382 |   return object_size_;
      |   ~~~~~~ ^~~~~~~~~~~~
minio-cpp/src/baseclient.cc:1870:35: warning: implicit conversion changes signedness: 'long' to 'size_t' (aka 'unsigned long') [-Wsign-conversion]
 1870 |   if (!value.empty()) resp.size = std::stol(value);

I have already removed some and these remain...

I'm not entirely sure whether it's great to use int where size_t would be more appropriate. I would like to review the code a bit before just adding a static_cast<>.

kobalicek avatar Apr 05 '24 09:04 kobalicek