<?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>217583</bug_id>
          
          <creation_ts>2020-10-11 12:58:51 -0700</creation_ts>
          <short_desc>-Wsign-compare warnings in URL.cpp and URLParser.cpp</short_desc>
          <delta_ts>2020-10-12 10:40:17 -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>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=215762</see_also>
          <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="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Michael Catanzaro">mcatanzaro</assigned_to>
          <cc>achristensen</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1696681</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-10-11 12:58:51 -0700</bug_when>
    <thetext>Integer literals are signed, so anything + 1 is signed:

[205/6600] Building CXX object Source/WTF/wtf/CMakeFiles/WTF.dir/URL.cpp.o
../../Source/WTF/wtf/URL.cpp: In member function ‘unsigned int WTF::URL::pathStart() const’:
../../Source/WTF/wtf/URL.cpp:110:15: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]
  110 |     if (start == m_schemeEnd + 1
      |         ~~~~~~^~~~~~~~~~~~~~~~~~

[206/6600] Building CXX object Source/WTF/wtf/CMakeFiles/WTF.dir/URLParser.cpp.o
../../Source/WTF/wtf/URLParser.cpp: In member function ‘bool WTF::URLParser::needsNonSpecialDotSlash() const’:
../../Source/WTF/wtf/URLParser.cpp:2501:22: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]
 2501 |         &amp;&amp; pathStart == m_url.m_schemeEnd + 1
      |            ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~

We could use unsigned literals:

diff --git a/Source/WTF/wtf/URL.cpp b/Source/WTF/wtf/URL.cpp
index ae0324da9fc3..cf2d6bf3538c 100644
--- a/Source/WTF/wtf/URL.cpp
+++ b/Source/WTF/wtf/URL.cpp
@@ -107,7 +107,7 @@ bool URL::hasSpecialScheme() const
 unsigned URL::pathStart() const
 {
     unsigned start = m_hostEnd + m_portLength;
-    if (start == m_schemeEnd + 1
+    if (start == m_schemeEnd + 1u
         &amp;&amp; start + 1 &lt; m_string.length()
         &amp;&amp; m_string[start] == &apos;/&apos; &amp;&amp; m_string[start + 1] == &apos;.&apos;)
         start += 2;
diff --git a/Source/WTF/wtf/URLParser.cpp b/Source/WTF/wtf/URLParser.cpp
index 8bbb2c0149ca..22db53f93761 100644
--- a/Source/WTF/wtf/URLParser.cpp
+++ b/Source/WTF/wtf/URLParser.cpp
@@ -2498,7 +2498,7 @@ bool URLParser::needsNonSpecialDotSlash() const
 {
     auto pathStart = m_url.m_hostEnd + m_url.m_portLength;
     return !m_urlIsSpecial
-        &amp;&amp; pathStart == m_url.m_schemeEnd + 1
+        &amp;&amp; pathStart == m_url.m_schemeEnd + 1u
         &amp;&amp; pathStart + 1 &lt; m_url.m_string.length()
         &amp;&amp; m_url.m_string[pathStart] == &apos;/&apos;
         &amp;&amp; m_url.m_string[pathStart + 1] == &apos;/&apos;;

Or we could use casts:

diff --git a/Source/WTF/wtf/URL.cpp b/Source/WTF/wtf/URL.cpp
index ae0324da9fc3..b94e99759fb2 100644
--- a/Source/WTF/wtf/URL.cpp
+++ b/Source/WTF/wtf/URL.cpp
@@ -107,7 +107,7 @@ bool URL::hasSpecialScheme() const
 unsigned URL::pathStart() const
 {
     unsigned start = m_hostEnd + m_portLength;
-    if (start == m_schemeEnd + 1
+    if (start == static_cast&lt;unsigned&gt;(m_schemeEnd + 1)
         &amp;&amp; start + 1 &lt; m_string.length()
         &amp;&amp; m_string[start] == &apos;/&apos; &amp;&amp; m_string[start + 1] == &apos;.&apos;)
         start += 2;
diff --git a/Source/WTF/wtf/URLParser.cpp b/Source/WTF/wtf/URLParser.cpp
index 8bbb2c0149ca..be7ab18c4ca3 100644
--- a/Source/WTF/wtf/URLParser.cpp
+++ b/Source/WTF/wtf/URLParser.cpp
@@ -2498,7 +2498,7 @@ bool URLParser::needsNonSpecialDotSlash() const
 {
     auto pathStart = m_url.m_hostEnd + m_url.m_portLength;
     return !m_urlIsSpecial
-        &amp;&amp; pathStart == m_url.m_schemeEnd + 1
+        &amp;&amp; pathStart == static_cast&lt;unsigned&gt;(m_url.m_schemeEnd + 1)
         &amp;&amp; pathStart + 1 &lt; m_url.m_string.length()
         &amp;&amp; m_url.m_string[pathStart] == &apos;/&apos;
         &amp;&amp; m_url.m_string[pathStart + 1] == &apos;/&apos;;

No strong preference from me, but I&apos;ll attach a patch that uses casts since I think it&apos;s slightly more clear.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696682</commentid>
    <comment_count>1</comment_count>
      <attachid>411060</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-10-11 13:01:24 -0700</bug_when>
    <thetext>Created attachment 411060
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696778</commentid>
    <comment_count>2</comment_count>
      <attachid>411060</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-10-11 19:33:46 -0700</bug_when>
    <thetext>Comment on attachment 411060
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=411060&amp;action=review

&gt; Source/WTF/wtf/URL.cpp:110
&gt; +    if (start == static_cast&lt;unsigned&gt;(m_schemeEnd + 1)

Doesn’t make sense to me. Isn’t m_schemeEnd an unsigned already? Is there something about being a bitfield that makes things become signed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696779</commentid>
    <comment_count>3</comment_count>
      <attachid>411060</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-10-11 19:34:45 -0700</bug_when>
    <thetext>Comment on attachment 411060
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=411060&amp;action=review

&gt;&gt; Source/WTF/wtf/URL.cpp:110
&gt;&gt; +    if (start == static_cast&lt;unsigned&gt;(m_schemeEnd + 1)
&gt; 
&gt; Doesn’t make sense to me. Isn’t m_schemeEnd an unsigned already? Is there something about being a bitfield that makes things become signed?

Oh, you said that using &quot;1&quot; rather than &quot;1U&quot; makes it signed.

I prefer 1U over 1u and certainly over static_cast&lt;unsigned&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696842</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-10-12 07:39:46 -0700</bug_when>
    <thetext>1U it is, then</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696843</commentid>
    <comment_count>5</comment_count>
      <attachid>411112</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-10-12 07:40:24 -0700</bug_when>
    <thetext>Created attachment 411112
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696891</commentid>
    <comment_count>6</comment_count>
      <attachid>411112</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-10-12 10:11:53 -0700</bug_when>
    <thetext>Comment on attachment 411112
Patch

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696917</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-12 10:39:56 -0700</bug_when>
    <thetext>Committed r268362: &lt;https://trac.webkit.org/changeset/268362&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 411112.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696918</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-12 10:40:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/70213551&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411060</attachid>
            <date>2020-10-11 13:01:24 -0700</date>
            <delta_ts>2020-10-12 07:40:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217583-20201011150123.patch</filename>
            <type>text/plain</type>
            <size>1974</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MjcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDIzZWVlNDE0ODg4NjkyOGViZTcxNTJm
N2JiMDVhOGZmZmY1MWIxNGQuLmY1NWNlYTI3YTkxM2NmMmY3Yzg1NGVhYTc3YjIzM2VhNWQwOWE5
NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMTAtMTEgIE1pY2hhZWwgQ2F0YW56YXJvICA8
bWNhdGFuemFyb0Bnbm9tZS5vcmc+CisKKyAgICAgICAgLVdzaWduLWNvbXBhcmUgd2FybmluZ3Mg
aW4gVVJMLmNwcCBhbmQgVVJMUGFyc2VyLmNwcAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NTgzCisKKyAgICAgICAgQWRkIG1pc3NpbmcgY2FzdHMu
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYv
VVJMLmNwcDoKKyAgICAgICAgKFdURjo6VVJMOjpwYXRoU3RhcnQgY29uc3QpOgorICAgICAgICAq
IHd0Zi9VUkxQYXJzZXIuY3BwOgorICAgICAgICAoV1RGOjpVUkxQYXJzZXI6Om5lZWRzTm9uU3Bl
Y2lhbERvdFNsYXNoIGNvbnN0KToKKwogMjAyMC0xMC0wOCAgWXVzdWtlIFN1enVraSAgPHlzdXp1
a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJlbGFuZCByMjY4MTcwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9VUkwuY3BwIGIvU291cmNlL1dURi93dGYvVVJMLmNwcApp
bmRleCBhZTAzMjRkYTlmYzNiNTBmM2I3MTliNGY3OGFlMzI4N2VhMDk2ZjYyLi5iOTRlOTk3NTlm
YjJlOWQ5ZGMxNmEzNThlMjRjODBjNTAwNmYyN2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9VUkwuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1VSTC5jcHAKQEAgLTEwNyw3ICsxMDcsNyBA
QCBib29sIFVSTDo6aGFzU3BlY2lhbFNjaGVtZSgpIGNvbnN0CiB1bnNpZ25lZCBVUkw6OnBhdGhT
dGFydCgpIGNvbnN0CiB7CiAgICAgdW5zaWduZWQgc3RhcnQgPSBtX2hvc3RFbmQgKyBtX3BvcnRM
ZW5ndGg7Ci0gICAgaWYgKHN0YXJ0ID09IG1fc2NoZW1lRW5kICsgMQorICAgIGlmIChzdGFydCA9
PSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obV9zY2hlbWVFbmQgKyAxKQogICAgICAgICAmJiBzdGFy
dCArIDEgPCBtX3N0cmluZy5sZW5ndGgoKQogICAgICAgICAmJiBtX3N0cmluZ1tzdGFydF0gPT0g
Jy8nICYmIG1fc3RyaW5nW3N0YXJ0ICsgMV0gPT0gJy4nKQogICAgICAgICBzdGFydCArPSAyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVVJMUGFyc2VyLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L1VSTFBhcnNlci5jcHAKaW5kZXggOGJiYjJjMDE0OWNhNDYxYjUxMzkwZTgyMjRhM2RkMzU1MTdk
YTVhZS4uYmU3YWIxOGM0Y2EzNmIxYTViOGFlZGFlNDY4OGEyMTA3NmIzZDc0OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvVVJMUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9VUkxQ
YXJzZXIuY3BwCkBAIC0yNDk4LDcgKzI0OTgsNyBAQCBib29sIFVSTFBhcnNlcjo6bmVlZHNOb25T
cGVjaWFsRG90U2xhc2goKSBjb25zdAogewogICAgIGF1dG8gcGF0aFN0YXJ0ID0gbV91cmwubV9o
b3N0RW5kICsgbV91cmwubV9wb3J0TGVuZ3RoOwogICAgIHJldHVybiAhbV91cmxJc1NwZWNpYWwK
LSAgICAgICAgJiYgcGF0aFN0YXJ0ID09IG1fdXJsLm1fc2NoZW1lRW5kICsgMQorICAgICAgICAm
JiBwYXRoU3RhcnQgPT0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1fdXJsLm1fc2NoZW1lRW5kICsg
MSkKICAgICAgICAgJiYgcGF0aFN0YXJ0ICsgMSA8IG1fdXJsLm1fc3RyaW5nLmxlbmd0aCgpCiAg
ICAgICAgICYmIG1fdXJsLm1fc3RyaW5nW3BhdGhTdGFydF0gPT0gJy8nCiAgICAgICAgICYmIG1f
dXJsLm1fc3RyaW5nW3BhdGhTdGFydCArIDFdID09ICcvJzsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411112</attachid>
            <date>2020-10-12 07:40:24 -0700</date>
            <delta_ts>2020-10-12 10:39:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217583-20201012094023.patch</filename>
            <type>text/plain</type>
            <size>2009</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MzMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGU2MzQ3OTAxNGY4MzY1OGI0ZDVhY2E5
MmJiYTVhYmZhOWM3MTMwZjEuLjJjMDE5MzU0MjNhOTMzMDQ2NzBmNDlkNWQ2MmMxZTBlMDM3MzI5
YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMTAtMTIgIE1pY2hhZWwgQ2F0YW56YXJvICA8
bWNhdGFuemFyb0Bnbm9tZS5vcmc+CisKKyAgICAgICAgLVdzaWduLWNvbXBhcmUgd2FybmluZ3Mg
aW4gVVJMLmNwcCBhbmQgVVJMUGFyc2VyLmNwcAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NTgzCisKKyAgICAgICAgVXNpbmcgdW5zaWduZWQgbGl0
ZXJhbHMgd2hlcmUgcmVxdWlyZWQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIu
CisKKyAgICAgICAgKiB3dGYvVVJMLmNwcDoKKyAgICAgICAgKFdURjo6VVJMOjpwYXRoU3RhcnQg
Y29uc3QpOgorICAgICAgICAqIHd0Zi9VUkxQYXJzZXIuY3BwOgorICAgICAgICAoV1RGOjpVUkxQ
YXJzZXI6Om5lZWRzTm9uU3BlY2lhbERvdFNsYXNoIGNvbnN0KToKKwogMjAyMC0xMC0xMSAgTHVt
aW5nIFlpbiAgPGx1bWluZ195aW5AYXBwbGUuY29tPgogCiAgICAgICAgIFN0cmlwIHBhdGNoIHZl
cnNpb24gZnJvbSBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiB3aGVuIGJ1aWxkaW5nIGZv
ciBtYWNPUyBCaWcgU3VyIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVVJMLmNwcCBiL1Nv
dXJjZS9XVEYvd3RmL1VSTC5jcHAKaW5kZXggYWUwMzI0ZGE5ZmMzYjUwZjNiNzE5YjRmNzhhZTMy
ODdlYTA5NmY2Mi4uM2UyMTRjMjZjMGNlYTJkZDM4YTc5MmEyYWQ2YjQ0NDVlMWRhMjhhNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvVVJMLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9VUkwu
Y3BwCkBAIC0xMDcsNyArMTA3LDcgQEAgYm9vbCBVUkw6Omhhc1NwZWNpYWxTY2hlbWUoKSBjb25z
dAogdW5zaWduZWQgVVJMOjpwYXRoU3RhcnQoKSBjb25zdAogewogICAgIHVuc2lnbmVkIHN0YXJ0
ID0gbV9ob3N0RW5kICsgbV9wb3J0TGVuZ3RoOwotICAgIGlmIChzdGFydCA9PSBtX3NjaGVtZUVu
ZCArIDEKKyAgICBpZiAoc3RhcnQgPT0gbV9zY2hlbWVFbmQgKyAxVQogICAgICAgICAmJiBzdGFy
dCArIDEgPCBtX3N0cmluZy5sZW5ndGgoKQogICAgICAgICAmJiBtX3N0cmluZ1tzdGFydF0gPT0g
Jy8nICYmIG1fc3RyaW5nW3N0YXJ0ICsgMV0gPT0gJy4nKQogICAgICAgICBzdGFydCArPSAyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVVJMUGFyc2VyLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L1VSTFBhcnNlci5jcHAKaW5kZXggOGJiYjJjMDE0OWNhNDYxYjUxMzkwZTgyMjRhM2RkMzU1MTdk
YTVhZS4uZjllN2RmZjdhOTg2YTU0NzAzOWQwMGRlZjdmYTQzNDJkMmZkMWU3NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvVVJMUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9VUkxQ
YXJzZXIuY3BwCkBAIC0yNDk4LDcgKzI0OTgsNyBAQCBib29sIFVSTFBhcnNlcjo6bmVlZHNOb25T
cGVjaWFsRG90U2xhc2goKSBjb25zdAogewogICAgIGF1dG8gcGF0aFN0YXJ0ID0gbV91cmwubV9o
b3N0RW5kICsgbV91cmwubV9wb3J0TGVuZ3RoOwogICAgIHJldHVybiAhbV91cmxJc1NwZWNpYWwK
LSAgICAgICAgJiYgcGF0aFN0YXJ0ID09IG1fdXJsLm1fc2NoZW1lRW5kICsgMQorICAgICAgICAm
JiBwYXRoU3RhcnQgPT0gbV91cmwubV9zY2hlbWVFbmQgKyAxVQogICAgICAgICAmJiBwYXRoU3Rh
cnQgKyAxIDwgbV91cmwubV9zdHJpbmcubGVuZ3RoKCkKICAgICAgICAgJiYgbV91cmwubV9zdHJp
bmdbcGF0aFN0YXJ0XSA9PSAnLycKICAgICAgICAgJiYgbV91cmwubV9zdHJpbmdbcGF0aFN0YXJ0
ICsgMV0gPT0gJy8nOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>