Address -Wfortify-source warnings.#138
Merged
dreamsyntax merged 1 commit intoaldelaro5:masterfrom May 15, 2024
Merged
Conversation
A number of `constexpr` checks have been added to the `compareMemoryAsNumbersWithType<T>()` template function so that the compiler can determine that type conversions are only performed between compatible types (i.e. types of the same width). In addition, `Common::bit_cast` is now used for type conversion (instead of raw `memcpy()`). `-Wfortify-source`; previously suppressed; has been re-enabled now. Note that this is a Clang-specific warning type.
cristian64
commented
May 14, 2024
| break; | ||
| } | ||
| default: | ||
| assert(0 && "Unexpected type size"); |
Collaborator
Author
There was a problem hiding this comment.
This assert was introduced in e9c0e22, and it was not correct. T could be char, and it's a valid case where it simply does not require any byte swapping in any case (for obvious reasons).
I only discovered this after converting the assert to static_assert (moved towards the top of the function now).
dreamsyntax
approved these changes
May 15, 2024
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A number of
constexprchecks have been added to thecompareMemoryAsNumbersWithType<T>()template function so that the compiler can determine that type conversions are only performed between compatible types (i.e. types of the same width).In addition,
Common::bit_castis now used for type conversion (instead of rawmemcpy()).-Wfortify-source; previously suppressed; has been re-enabled now. Note that this is a Clang-specific warning type.