<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>211044</bug_id>
          
          <creation_ts>2020-04-26 02:12:11 -0700</creation_ts>
          <short_desc>[WTF] Workaround gcc bug for unsigned bitfield related usual arithmetic conversions</short_desc>
          <delta_ts>2020-04-27 03:09:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joonghun Park">jh718.park</reporter>
          <assigned_to name="Joonghun Park">jh718.park</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1645764</commentid>
    <comment_count>0</comment_count>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2020-04-26 02:12:11 -0700</bug_when>
    <thetext>(unsigned + signed) should return unsigned int type as a common type defined by usual arithmetic conversions.

But gcc 9.3.0 returns signed int type for this case.

I filed a bug for this issue on gcc bugzilla,
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94767.

To workaround this, I originally submitted the patch, http://svn.webkit.org/repository/webkit/trunk@260715,
but according to Darin&apos;s comment, use unsigned integer suffix instead of static_cast&lt;unsigned&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645765</commentid>
    <comment_count>1</comment_count>
      <attachid>397614</attachid>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2020-04-26 02:15:01 -0700</bug_when>
    <thetext>Created attachment 397614
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645805</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-26 11:55:25 -0700</bug_when>
    <thetext>Committed r260727: &lt;https://trac.webkit.org/changeset/260727&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 397614.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645807</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-26 11:56:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/62403735&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645945</commentid>
    <comment_count>4</comment_count>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2020-04-27 03:09:23 -0700</bug_when>
    <thetext>FYI, in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94767,
Jonathan Wakely left a comment for a c++ standard entry for this issue.

http://eel.is/c++draft/conv.prom#5,

and the statement of this link is as below.

&quot;A prvalue for an integral bit-field ([class.bit]) can be converted to a prvalue of type int if int can represent all the values of the bit-field; otherwise, it can be converted to unsigned int if unsigned int can represent all the values of the bit-field. If the bit-field is larger yet, no integral promotion applies to it. If the bit-field has an enumerated type, it is treated as any other value of that type for promotion purposes.&quot;

So I think gcc&apos;s build warning,

warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]

was valid one and this patch could be a proper fix, not just a workaround.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397614</attachid>
            <date>2020-04-26 02:15:01 -0700</date>
            <delta_ts>2020-04-26 11:55:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211044-20200426181500.patch</filename>
            <type>text/plain</type>
            <size>2643</size>
            <attacher name="Joonghun Park">jh718.park</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDI2OTk2ZjUxNzg1N2IyMmZmNDFkZTI4
ODYzNmJlNTJjYWQ2NDNmNjkuLjFhM2Q1ZDNhZWYxNGQwYWQyOWY3NjNkYTVmMGMzZWU2ZTI4MjM2
NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDQtMjYgIEpvb25naHVuIFBhcmsgIDxqaDcx
OC5wYXJrQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtXVEZdIFdvcmthcm91bmQgZ2NjIGJ1ZyBm
b3IgdW5zaWduZWQgYml0ZmllbGQgcmVsYXRlZCB1c3VhbCBhcml0aG1ldGljIGNvbnZlcnNpb25z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEwNDQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9V
UkwuY3BwOgorICAgICAgICAoV1RGOjpVUkw6OnNldEhvc3QpOgorICAgICAgICAoV1RGOjpVUkw6
OnNldEhvc3RBbmRQb3J0KToKKyAgICAgICAgKFdURjo6VVJMOjpzZXRVc2VyKToKKyAgICAgICAg
KFdURjo6VVJMOjpzZXRQYXNzd29yZCk6CisKIDIwMjAtMDQtMjUgIEpvb25naHVuIFBhcmsgIDxq
aDcxOC5wYXJrQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIFJlbW92ZSB0aGUg
YnVsaWQgd2FybmluZ3MgYmVsb3cgc2luY2UgcjI2MDcwNy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL1VSTC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9VUkwuY3BwCmluZGV4IGIxMmNiZDQ2YzVh
MWQ0YTM0MWExOWY0YjE2YjI1OTQ1MzBkZTJmODguLmU1NjJmZTA5MzJkZjU4MzI2YmRmMTI3MWUw
ZjFlOTFlNGY2YjNjZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1VSTC5jcHAKKysrIGIv
U291cmNlL1dURi93dGYvVVJMLmNwcApAQCAtNDM2LDcgKzQzNiw3IEBAIHZvaWQgVVJMOjpzZXRI
b3N0KFN0cmluZ1ZpZXcgbmV3SG9zdCkKICAgICBpZiAoIWFwcGVuZEVuY29kZWRIb3N0bmFtZShl
bmNvZGVkSG9zdE5hbWUsIG5ld0hvc3QpKQogICAgICAgICByZXR1cm47CiAKLSAgICBib29sIHNs
YXNoU2xhc2hOZWVkZWQgPSBtX3VzZXJTdGFydCA9PSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obV9z
Y2hlbWVFbmQgKyAxKTsKKyAgICBib29sIHNsYXNoU2xhc2hOZWVkZWQgPSBtX3VzZXJTdGFydCA9
PSBtX3NjaGVtZUVuZCArIDFVOwogICAgIHBhcnNlKG1ha2VTdHJpbmcoCiAgICAgICAgIFN0cmlu
Z1ZpZXcobV9zdHJpbmcpLmxlZnQoaG9zdFN0YXJ0KCkpLAogICAgICAgICBzbGFzaFNsYXNoTmVl
ZGVkID8gIi8vIiA6ICIiLApAQCAtNDg2LDcgKzQ4Niw3IEBAIHZvaWQgVVJMOjpzZXRIb3N0QW5k
UG9ydChTdHJpbmdWaWV3IGhvc3RBbmRQb3J0KQogICAgIGlmICghYXBwZW5kRW5jb2RlZEhvc3Ru
YW1lKGVuY29kZWRIb3N0TmFtZSwgaG9zdE5hbWUpKQogICAgICAgICByZXR1cm47CiAKLSAgICBi
b29sIHNsYXNoU2xhc2hOZWVkZWQgPSBtX3VzZXJTdGFydCA9PSBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4obV9zY2hlbWVFbmQgKyAxKTsKKyAgICBib29sIHNsYXNoU2xhc2hOZWVkZWQgPSBtX3VzZXJT
dGFydCA9PSBtX3NjaGVtZUVuZCArIDFVOwogICAgIHBhcnNlKG1ha2VTdHJpbmcoCiAgICAgICAg
IFN0cmluZ1ZpZXcobV9zdHJpbmcpLmxlZnQoaG9zdFN0YXJ0KCkpLAogICAgICAgICBzbGFzaFNs
YXNoTmVlZGVkID8gIi8vIiA6ICIiLApAQCAtNTQ3LDcgKzU0Nyw3IEBAIHZvaWQgVVJMOjpzZXRV
c2VyKFN0cmluZ1ZpZXcgbmV3VXNlcikKIAogICAgIHVuc2lnbmVkIGVuZCA9IG1fdXNlckVuZDsK
ICAgICBpZiAoIW5ld1VzZXIuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGJvb2wgc2xhc2hTbGFzaE5l
ZWRlZCA9IG1fdXNlclN0YXJ0ID09IHN0YXRpY19jYXN0PHVuc2lnbmVkPihtX3NjaGVtZUVuZCAr
IDEpOworICAgICAgICBib29sIHNsYXNoU2xhc2hOZWVkZWQgPSBtX3VzZXJTdGFydCA9PSBtX3Nj
aGVtZUVuZCArIDFVOwogICAgICAgICBib29sIG5lZWRTZXBhcmF0b3IgPSBlbmQgPT0gbV9ob3N0
RW5kIHx8IChlbmQgPT0gbV9wYXNzd29yZEVuZCAmJiBtX3N0cmluZ1tlbmRdICE9ICdAJyk7CiAg
ICAgICAgIHBhcnNlKG1ha2VTdHJpbmcoCiAgICAgICAgICAgICBTdHJpbmdWaWV3KG1fc3RyaW5n
KS5sZWZ0KG1fdXNlclN0YXJ0KSwKQEAgLTU3MCw3ICs1NzAsNyBAQCB2b2lkIFVSTDo6c2V0UGFz
c3dvcmQoU3RyaW5nVmlldyBuZXdQYXNzd29yZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYg
KCFuZXdQYXNzd29yZC5pc0VtcHR5KCkpIHsKLSAgICAgICAgYm9vbCBuZWVkTGVhZGluZ1NsYXNo
ZXMgPSBtX3VzZXJFbmQgPT0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1fc2NoZW1lRW5kICsgMSk7
CisgICAgICAgIGJvb2wgbmVlZExlYWRpbmdTbGFzaGVzID0gbV91c2VyRW5kID09IG1fc2NoZW1l
RW5kICsgMVU7CiAgICAgICAgIHBhcnNlKG1ha2VTdHJpbmcoCiAgICAgICAgICAgICBTdHJpbmdW
aWV3KG1fc3RyaW5nKS5sZWZ0KG1fdXNlckVuZCksCiAgICAgICAgICAgICBuZWVkTGVhZGluZ1Ns
YXNoZXMgPyAiLy86IiA6ICI6IiwK
</data>

          </attachment>
      

    </bug>

</bugzilla>