aws / aws-sdk-cpp

AWS SDK for C++
Apache License 2.0
1.99k stars 1.06k forks source link

Fix compiler warnings #2363

Open JelleBakker opened 1 year ago

JelleBakker commented 1 year ago

Describe the bug

My compiler shows me a bunch of warnings that I'd like to get fixed. This is just a small list:

aws-cpp-sdk-core/include/aws/core/NoResult.h:29:81: warning: extra ';' after member function definition [-Wextra-semi] /aws-cpp-sdk-core/include/aws/core/AmazonSerializableWebServiceRequest.h:42:17: warning: '~AmazonSerializableWebServiceRequest' overrides a destructor but is not marked 'override' [-Winconsistent-missing-destructor-override] aws-cpp-sdk-core/include/aws/core/http/HttpResponse.h:115:21: warning: 65 enumeration values not explicitly handled in switch: 'REQUEST_NOT_MADE', 'CONTINUE', 'SWITCHING_PROTOCOLS'... [-Wswitch-enum] aws-crt-cpp/crt/aws-c-io/include/aws/io/socket.h:98:18: warning: zero as null pointer constant [-Wzero-as-null-pointer-constant] aws-crt-cpp/include/aws/crt/StringView.h:534:49: warning: implicit conversion changes signedness: 'unsigned long' to 'const Aws::Crt::basic_string_view::difference_type' (aka 'const long') [-Wsign-conversion] aws-crt-cpp/crt/aws-c-common/include/aws/common/math.gcc_builtin.inl:63:28: warning: implicit conversion changes signedness: 'int64_t' (aka 'long long') to 'unsigned long long' [-Wsign-conversion] aws-crt-cpp/crt/aws-c-common/include/aws/common/math.gcc_builtin.inl:63:12: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned long') [-Wsign-conversion]

Expected Behavior

I expect the SDK to have 0 warnings.

Current Behavior

The current behaviour is that there are many warnings.

Reproduction Steps

I'm compiling a CLion project on MacOS 12.6 with ninja build tool and CMake 3.24.2.

Possible Solution

No response

Additional Information/Context

No response

AWS CPP SDK version used

1.10.47

Compiler and Version used

clang 14.0.0

Operating System and version

MacOS 12.6, CLion 2022.3.2

jmklix commented 1 year ago

Can you include the exact reproduction steps and which cmake arguments you are using?

JelleBakker commented 1 year ago

I'm using AppleClang 14.0.0.14000029 compiler with these settings:

-Wall -Wshadow-all -Wshorten-64-to-32 -Wstrict-aliasing
-Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare
-Wint-conversion -Wconditional-uninitialized -Wconstant-conversion
-Wsign-conversion -Wbool-conversion -Wextra-semi -Wunreachable-code
-Wcast-align -Wshift-sign-overflow -Wmissing-prototypes
-Wnullable-to-nonnull-conversion -Wno-ignored-qualifiers -Wswitch-enum
-Wpedantic -Wdeprecated -Wzero-as-null-pointer-constant -Wunused-private-field
-Woverloaded-virtual -Wreorder -Winconsistent-missing-destructor-override
-Wunguarded-availability -Wunguarded-availability-new