Enable -Wconversion (#1359)

Summary:
X-link: https://github.com/facebook/react-native/pull/39291

Pull Request resolved: https://github.com/facebook/yoga/pull/1359

This enables clang warnings around potentially unsafe conversions, such as those with mismatched signedness, or ones which may lead to truncation.

This should catch issues in local development which create errors for MSVC (e.g. Dash), who's default `/W3` includes warnings akin to `-Wshorten-64-to-32`.

This full set of warnings here is a tad spammy, but probably more useful than not.

Changelog: [Internal]

Reviewed By: yungsters

Differential Revision: D48954777

fbshipit-source-id: 1ccc07b99d09d1c2d428158149698ffd04025605
This commit is contained in:
Nick Gerleman
2023-09-06 08:16:42 -07:00
committed by Facebook GitHub Bot
parent 95a7b4497e
commit aee43a53bc
17 changed files with 149 additions and 125 deletions

View File

@@ -36,7 +36,7 @@ public:
template <typename T>
struct BitfieldRef {
Style& style;
size_t offset;
uint8_t offset;
operator T() const { return getEnumData<T>(style.flags, offset); }
BitfieldRef<T>& operator=(T x) {
setEnumData<T>(style.flags, offset, x);
@@ -84,24 +84,24 @@ public:
~Style() = default;
private:
static constexpr size_t directionOffset = 0;
static constexpr size_t flexdirectionOffset =
static constexpr uint8_t directionOffset = 0;
static constexpr uint8_t flexdirectionOffset =
directionOffset + minimumBitCount<YGDirection>();
static constexpr size_t justifyContentOffset =
static constexpr uint8_t justifyContentOffset =
flexdirectionOffset + minimumBitCount<YGFlexDirection>();
static constexpr size_t alignContentOffset =
static constexpr uint8_t alignContentOffset =
justifyContentOffset + minimumBitCount<YGJustify>();
static constexpr size_t alignItemsOffset =
static constexpr uint8_t alignItemsOffset =
alignContentOffset + minimumBitCount<YGAlign>();
static constexpr size_t alignSelfOffset =
static constexpr uint8_t alignSelfOffset =
alignItemsOffset + minimumBitCount<YGAlign>();
static constexpr size_t positionTypeOffset =
static constexpr uint8_t positionTypeOffset =
alignSelfOffset + minimumBitCount<YGAlign>();
static constexpr size_t flexWrapOffset =
static constexpr uint8_t flexWrapOffset =
positionTypeOffset + minimumBitCount<YGPositionType>();
static constexpr size_t overflowOffset =
static constexpr uint8_t overflowOffset =
flexWrapOffset + minimumBitCount<YGWrap>();
static constexpr size_t displayOffset =
static constexpr uint8_t displayOffset =
overflowOffset + minimumBitCount<YGOverflow>();
uint32_t flags = 0;