<?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>198313</bug_id>
          
          <creation_ts>2019-05-28 17:12:04 -0700</creation_ts>
          <short_desc>[WHLSL] The checker should not have pointers/references into its maps</short_desc>
          <delta_ts>2019-06-18 16:41:06 -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>WebGPU</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>198876</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Robin Morisset">rmorisset</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>jonlee</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1539810</commentid>
    <comment_count>0</comment_count>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-05-28 17:12:04 -0700</bug_when>
    <thetext>m_typeMap is currently HashMap&lt;AST::Expression*, ResolvingType&gt; m_typeMap;
This is buggy, because some code in the checker has references into it, and they get invalidated whenever the typeMap is resized. Instead the Map should contain UniqueRef&lt;ResolvingType&gt;, and then we should only have references to the ResolvingType itself.
This bugs currently prevents checking the full standard library.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539827</commentid>
    <comment_count>1</comment_count>
      <attachid>370812</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-05-28 17:27:44 -0700</bug_when>
    <thetext>Created attachment 370812
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540087</commentid>
    <comment_count>2</comment_count>
      <attachid>370812</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-05-29 13:30:27 -0700</bug_when>
    <thetext>Comment on attachment 370812
WIP

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

&gt; Source/WebCore/Modules/webgpu/WHLSL/WHLSLChecker.cpp:494
&gt; +    HashMap&lt;AST::Expression*, std::unique_ptr&lt;ResolvingType&gt;&gt; m_typeMap;

UniqueRef didn&apos;t work?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540129</commentid>
    <comment_count>3</comment_count>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-05-29 14:57:15 -0700</bug_when>
    <thetext>No, because it does not offer the right methods to be in a HashMap (I think it is missing a copy operator or something. I could have looked in detail, and tried to improve either HashMap or UniqueRef to work together, but using std::unique_ptr seemed way easier and good enough for this purpose.

(In reply to Myles C. Maxfield from comment #2)
&gt; Comment on attachment 370812 [details]
&gt; WIP
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=370812&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/webgpu/WHLSL/WHLSLChecker.cpp:494
&gt; &gt; +    HashMap&lt;AST::Expression*, std::unique_ptr&lt;ResolvingType&gt;&gt; m_typeMap;
&gt; 
&gt; UniqueRef didn&apos;t work?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540605</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-05-30 20:26:36 -0700</bug_when>
    <thetext>&lt;rdar://problem/51288768&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545883</commentid>
    <comment_count>5</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-06-18 16:37:55 -0700</bug_when>
    <thetext>patch forthcoming with tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545885</commentid>
    <comment_count>6</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-06-18 16:40:56 -0700</bug_when>
    <thetext>actually, just gonna do this as part of the matrix patch. it&apos;s too difficult to split up as we&apos;ll end up with checker errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545886</commentid>
    <comment_count>7</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-06-18 16:41:06 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 198876 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370812</attachid>
            <date>2019-05-28 17:27:44 -0700</date>
            <delta_ts>2019-05-28 17:27:44 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>patch198313</filename>
            <type>text/plain</type>
            <size>4577</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0NTgzNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE5LTA1LTI4ICBSb2JpbiBN
b3Jpc3NldCAgPHJtb3Jpc3NldEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dITFNMXSBUaGUgY2hl
Y2tlciBzaG91bGQgbm90IGhhdmUgcG9pbnRlcnMvcmVmZXJlbmNlcyBpbnRvIGl0cyBtYXBzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTgzMTMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2luZyBzdGQ6
OnVuaXF1ZV9wdHIgaW5zdGVhZCBvZiBVbmlxdWVSZWYsIGJlY2F1c2UgVW5pcXVlUmVmIGlzIG5v
dCB1c2FibGUgaW5zaWRlIEhhc2hNYXAuCisgICAgICAgIFN0aWxsIG5vIGF1dG9tYXRlZCB0ZXN0
IGFzIHRoZXJlIGlzIG5vIHRlc3QgaGFybmVzcyBmb3IgV0hMU0wuIFRlc3RlZCBtYW51YWxseSBv
biB0aGUgZnVsbCBzdGFuZGFyZCBsaWJyYXJ5LgorCisgICAgICAgICogTW9kdWxlcy93ZWJncHUv
V0hMU0wvV0hMU0xDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpDaGVja2Vy
Ojphc3NpZ25UeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6Q2hlY2tlcjo6Z2V0SW5m
byk6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6Q2hlY2tlcjo6YXNzaWduVHlwZSk6CisgICAg
ICAgIChXZWJDb3JlOjpXSExTTDo6Q2hlY2tlcjo6Zm9yd2FyZFR5cGUpOgorCiAyMDE5LTA1LTI4
ICBTaGF3biBSb2JlcnRzICA8c3JvYmVydHNAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHIyNDU0NzUuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XSExTTC9XSExTTENoZWNrZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMQ2hlY2tlci5jcHAJKHJldmlzaW9uIDI0NTgyMikK
KysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMQ2hlY2tlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQ5MSw3ICs0OTEsNyBAQAogICAgIHZvaWQgdmlzaXQoQVNUOjpU
ZXJuYXJ5RXhwcmVzc2lvbiYpIG92ZXJyaWRlOwogICAgIHZvaWQgdmlzaXQoQVNUOjpDYWxsRXhw
cmVzc2lvbiYpIG92ZXJyaWRlOwogCi0gICAgSGFzaE1hcDxBU1Q6OkV4cHJlc3Npb24qLCBSZXNv
bHZpbmdUeXBlPiBtX3R5cGVNYXA7CisgICAgSGFzaE1hcDxBU1Q6OkV4cHJlc3Npb24qLCBzdGQ6
OnVuaXF1ZV9wdHI8UmVzb2x2aW5nVHlwZT4+IG1fdHlwZU1hcDsKICAgICBIYXNoTWFwPEFTVDo6
RXhwcmVzc2lvbiosIEFTVDo6VHlwZUFubm90YXRpb24+IG1fdHlwZUFubm90YXRpb25zOwogICAg
IEhhc2hTZXQ8U3RyaW5nPiBtX3ZlcnRleEVudHJ5UG9pbnRzOwogICAgIEhhc2hTZXQ8U3RyaW5n
PiBtX2ZyYWdtZW50RW50cnlQb2ludHM7CkBAIC01MjEsNyArNTIxLDcgQEAKIGJvb2wgQ2hlY2tl
cjo6YXNzaWduVHlwZXMoKQogewogICAgIGZvciAoYXV0byYga2V5VmFsdWVQYWlyIDogbV90eXBl
TWFwKSB7Ci0gICAgICAgIGF1dG8gc3VjY2VzcyA9IGtleVZhbHVlUGFpci52YWx1ZS52aXNpdChX
VEY6Om1ha2VWaXNpdG9yKFsmXShVbmlxdWVSZWY8QVNUOjpVbm5hbWVkVHlwZT4mIHVubmFtZWRU
eXBlKSAtPiBib29sIHsKKyAgICAgICAgYXV0byBzdWNjZXNzID0ga2V5VmFsdWVQYWlyLnZhbHVl
LT52aXNpdChXVEY6Om1ha2VWaXNpdG9yKFsmXShVbmlxdWVSZWY8QVNUOjpVbm5hbWVkVHlwZT4m
IHVubmFtZWRUeXBlKSAtPiBib29sIHsKICAgICAgICAgICAgIGtleVZhbHVlUGFpci5rZXktPnNl
dFR5cGUodW5uYW1lZFR5cGUtPmNsb25lKCkpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgIH0sIFsmXShSZWZQdHI8UmVzb2x2YWJsZVR5cGVSZWZlcmVuY2U+JiByZXNvbHZhYmxl
VHlwZVJlZmVyZW5jZSkgLT4gYm9vbCB7CkBAIC03NjYsNyArNzY2LDcgQEAKICAgICAgICAgc2V0
RXJyb3IoKTsKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICB9Ci0gICAgcmV0dXJu
IHt7IHR5cGVJdGVyYXRvci0+dmFsdWUsIHR5cGVBbm5vdGF0aW9uSXRlcmF0b3ItPnZhbHVlIH19
OworICAgIHJldHVybiB7eyAqdHlwZUl0ZXJhdG9yLT52YWx1ZSwgdHlwZUFubm90YXRpb25JdGVy
YXRvci0+dmFsdWUgfX07CiB9CiAKIHZvaWQgQ2hlY2tlcjo6dmlzaXQoQVNUOjpWYXJpYWJsZURl
Y2xhcmF0aW9uJiB2YXJpYWJsZURlY2xhcmF0aW9uKQpAQCAtNzg4LDcgKzc4OCw3IEBACiAKIHZv
aWQgQ2hlY2tlcjo6YXNzaWduVHlwZShBU1Q6OkV4cHJlc3Npb24mIGV4cHJlc3Npb24sIFVuaXF1
ZVJlZjxBU1Q6OlVubmFtZWRUeXBlPiYmIHVubmFtZWRUeXBlLCBBU1Q6OlR5cGVBbm5vdGF0aW9u
IHR5cGVBbm5vdGF0aW9uID0gQVNUOjpSaWdodFZhbHVlKCkpCiB7Ci0gICAgYXV0byBhZGRSZXN1
bHQgPSBtX3R5cGVNYXAuYWRkKCZleHByZXNzaW9uLCBXVEZNb3ZlKHVubmFtZWRUeXBlKSk7Cisg
ICAgYXV0byBhZGRSZXN1bHQgPSBtX3R5cGVNYXAuYWRkKCZleHByZXNzaW9uLCBzdGQ6Om1ha2Vf
dW5pcXVlPFJlc29sdmluZ1R5cGU+KFdURk1vdmUodW5uYW1lZFR5cGUpKSk7CiAgICAgQVNTRVJU
X1VOVVNFRChhZGRSZXN1bHQsIGFkZFJlc3VsdC5pc05ld0VudHJ5KTsKICAgICBhdXRvIHR5cGVB
bm5vdGF0aW9uQWRkUmVzdWx0ID0gbV90eXBlQW5ub3RhdGlvbnMuYWRkKCZleHByZXNzaW9uLCBX
VEZNb3ZlKHR5cGVBbm5vdGF0aW9uKSk7CiAgICAgQVNTRVJUX1VOVVNFRCh0eXBlQW5ub3RhdGlv
bkFkZFJlc3VsdCwgdHlwZUFubm90YXRpb25BZGRSZXN1bHQuaXNOZXdFbnRyeSk7CkBAIC03OTYs
NyArNzk2LDcgQEAKIAogdm9pZCBDaGVja2VyOjphc3NpZ25UeXBlKEFTVDo6RXhwcmVzc2lvbiYg
ZXhwcmVzc2lvbiwgUmVmUHRyPFJlc29sdmFibGVUeXBlUmVmZXJlbmNlPiYmIHJlc29sdmFibGVU
eXBlUmVmZXJlbmNlLCBBU1Q6OlR5cGVBbm5vdGF0aW9uIHR5cGVBbm5vdGF0aW9uID0gQVNUOjpS
aWdodFZhbHVlKCkpCiB7Ci0gICAgYXV0byBhZGRSZXN1bHQgPSBtX3R5cGVNYXAuYWRkKCZleHBy
ZXNzaW9uLCBXVEZNb3ZlKHJlc29sdmFibGVUeXBlUmVmZXJlbmNlKSk7CisgICAgYXV0byBhZGRS
ZXN1bHQgPSBtX3R5cGVNYXAuYWRkKCZleHByZXNzaW9uLCBzdGQ6Om1ha2VfdW5pcXVlPFJlc29s
dmluZ1R5cGU+KFdURk1vdmUocmVzb2x2YWJsZVR5cGVSZWZlcmVuY2UpKSk7CiAgICAgQVNTRVJU
X1VOVVNFRChhZGRSZXN1bHQsIGFkZFJlc3VsdC5pc05ld0VudHJ5KTsKICAgICBhdXRvIHR5cGVB
bm5vdGF0aW9uQWRkUmVzdWx0ID0gbV90eXBlQW5ub3RhdGlvbnMuYWRkKCZleHByZXNzaW9uLCBX
VEZNb3ZlKHR5cGVBbm5vdGF0aW9uKSk7CiAgICAgQVNTRVJUX1VOVVNFRCh0eXBlQW5ub3RhdGlv
bkFkZFJlc3VsdCwgdHlwZUFubm90YXRpb25BZGRSZXN1bHQuaXNOZXdFbnRyeSk7CkBAIC04MDUs
MTAgKzgwNSwxMCBAQAogdm9pZCBDaGVja2VyOjpmb3J3YXJkVHlwZShBU1Q6OkV4cHJlc3Npb24m
IGV4cHJlc3Npb24sIFJlc29sdmluZ1R5cGUmIHJlc29sdmluZ1R5cGUsIEFTVDo6VHlwZUFubm90
YXRpb24gdHlwZUFubm90YXRpb24gPSBBU1Q6OlJpZ2h0VmFsdWUoKSkKIHsKICAgICByZXNvbHZp
bmdUeXBlLnZpc2l0KFdURjo6bWFrZVZpc2l0b3IoWyZdKFVuaXF1ZVJlZjxBU1Q6OlVubmFtZWRU
eXBlPiYgcmVzdWx0KSB7Ci0gICAgICAgIGF1dG8gYWRkUmVzdWx0ID0gbV90eXBlTWFwLmFkZCgm
ZXhwcmVzc2lvbiwgcmVzdWx0LT5jbG9uZSgpKTsKKyAgICAgICAgYXV0byBhZGRSZXN1bHQgPSBt
X3R5cGVNYXAuYWRkKCZleHByZXNzaW9uLCBzdGQ6Om1ha2VfdW5pcXVlPFJlc29sdmluZ1R5cGU+
KHJlc3VsdC0+Y2xvbmUoKSkpOwogICAgICAgICBBU1NFUlRfVU5VU0VEKGFkZFJlc3VsdCwgYWRk
UmVzdWx0LmlzTmV3RW50cnkpOwogICAgIH0sIFsmXShSZWZQdHI8UmVzb2x2YWJsZVR5cGVSZWZl
cmVuY2U+JiByZXN1bHQpIHsKLSAgICAgICAgYXV0byBhZGRSZXN1bHQgPSBtX3R5cGVNYXAuYWRk
KCZleHByZXNzaW9uLCByZXN1bHQuY29weVJlZigpKTsKKyAgICAgICAgYXV0byBhZGRSZXN1bHQg
PSBtX3R5cGVNYXAuYWRkKCZleHByZXNzaW9uLCBzdGQ6Om1ha2VfdW5pcXVlPFJlc29sdmluZ1R5
cGU+KHJlc3VsdC5jb3B5UmVmKCkpKTsKICAgICAgICAgQVNTRVJUX1VOVVNFRChhZGRSZXN1bHQs
IGFkZFJlc3VsdC5pc05ld0VudHJ5KTsKICAgICB9KSk7CiAgICAgYXV0byB0eXBlQW5ub3RhdGlv
bkFkZFJlc3VsdCA9IG1fdHlwZUFubm90YXRpb25zLmFkZCgmZXhwcmVzc2lvbiwgV1RGTW92ZSh0
eXBlQW5ub3RhdGlvbikpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>