Bug 213972

Summary: [WTF] Implicit int to float conversion warning with clang 14
Product: WebKit Reporter: Philippe Normand <pnormand>
Component: Web Template FrameworkAssignee: Nobody <webkit-unassigned>
Status: REOPENED ---    
Severity: Normal CC: annulen, bfulgham, Hironori.Fujii, philn
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=204834

Description Philippe Normand 2020-07-05 05:32:32 PDT
DerivedSources/ForwardingHeaders/wtf/CheckedArithmetic.h:829:58: warning: implicit conversion from 'unsigned long' to 'double' changes value from 18446744073709551615 to 18446744073709551616 [-Wimplicit-int-float-conversion]
        if (!(std::numeric_limits<T>::min() <= result && std::numeric_limits<T>::max() >= result))
                                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~
../Tools/TestWebKitAPI/Tests/WTF/CheckedArithmeticOperations.cpp:511:10: note: in instantiation of member function 'WTF::Checked<unsigned long, WTF::RecordOverflow>::operator/=' requested here
    size /= 10.5;
         ^
1 warning generated.
Comment 1 Philippe Normand 2020-07-05 05:33:38 PDT
Another one:

In file included from DerivedSources/WebCore/StyleBuilderGenerated.cpp:10:
../Source/WebCore/style/StyleBuilderConverter.h:1197:97: warning: implicit conversion from 'const int' to 'float' changes value from 33554429 to 33554428 [-Wimplicit-int-float-conversion]
        wordSpacing = Length(clampTo<float>(primitiveValue.doubleValue(), minValueForCssLength, maxValueForCssLength), Percent);
                             ~~~~~~~                                                            ^~~~~~~~~~~~~~~~~~~~
1 warning generated.
Comment 2 Fujii Hironori 2021-04-17 13:36:18 PDT
(In reply to Philippe Normand from comment #1)
> Another one:
> 
> In file included from DerivedSources/WebCore/StyleBuilderGenerated.cpp:10:
> ../Source/WebCore/style/StyleBuilderConverter.h:1197:97: warning: implicit
> conversion from 'const int' to 'float' changes value from 33554429 to
> 33554428 [-Wimplicit-int-float-conversion]
>         wordSpacing = Length(clampTo<float>(primitiveValue.doubleValue(),
> minValueForCssLength, maxValueForCssLength), Percent);
>                              ~~~~~~~                                        
> ^~~~~~~~~~~~~~~~~~~~
> 1 warning generated.

This was fixed by r276205.
Bug 224714 – [clang 11] Remove warning when converting WebCore::maxValueForCssLength from int to float
Comment 3 Brent Fulgham 2022-06-30 16:57:56 PDT

*** This bug has been marked as a duplicate of bug 224714 ***
Comment 4 Philippe Normand 2022-07-01 02:48:40 PDT
In file included from /app/webkit/WebKitBuild/Release/WebCore/DerivedSources/unified-sources/UnifiedSource-3c72abbe-12.cpp:8:
/app/webkit/Source/WebCore/platform/audio/AudioUtilities.cpp:72:18: warning: implicit conversion from 'unsigned long' to 'double' changes value from 18446744073709551615 to 18446744073709551616 [-Wimplicit-const-int-float-conversion]
    if (frame >= std::numeric_limits<size_t>::max())
              ~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
[1277/2105] Building CXX object Source/WebCore/CMakeFiles/WebCore.dir/__/__/WebCore/DerivedSources/unified-sources/UnifiedSource-043dd90b-22.cpp.o
In file included from /app/webkit/WebKitBuild/Release/WebCore/DerivedSources/unified-sources/UnifiedSource-043dd90b-22.cpp:5:
/app/webkit/Source/WebCore/rendering/style/RenderStyle.cpp:2048:55: warning: implicit conversion from 'const int' to 'float' changes value from 33554429 to 33554428 [-Wimplicit-const-int-float-conversion]
        fontWordSpacing = value.nonNanCalculatedValue(maxValueForCssLength);
                                ~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~
1 warning generated.
[1339/2105] Building CXX object Source/WebCore/CMakeFiles/WebCore.dir/__/__/WebCore/DerivedSources/unified-sources/UnifiedSource-26ec8d00-3.cpp.o
In file included from /app/webkit/WebKitBuild/Release/WebCore/DerivedSources/unified-sources/UnifiedSource-26ec8d00-3.cpp:2:
/app/webkit/Source/WebCore/style/RuleSetBuilder.cpp:227:58: warning: implicit conversion from 'unsigned long long' to 'double' changes value from 18446744073709551615 to 18446744073709551616 [-Wimplicit-const-int-float-conversion]
            unsigned long long random = randomNumber() * std::numeric_limits<unsigned long long>::max();
                                                       ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.