<?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>189703</bug_id>
          
          <creation_ts>2018-09-18 11:02:55 -0700</creation_ts>
          <short_desc>CheckStructureOrEmpty should pass in a tempGPR to emitStructureCheck since it may jump over that code</short_desc>
          <delta_ts>2018-09-19 14:10:34 -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>JavaScriptCore</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="Dawei Fenton (:realdawei)">realdawei</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>saam</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1460651</commentid>
    <comment_count>0</comment_count>
    <who name="Dawei Fenton (:realdawei)">realdawei</who>
    <bug_when>2018-09-18 11:02:55 -0700</bug_when>
    <thetext>Debug JSC has an assertion failure on the following test:
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager


sample output:
https://build.webkit.org/builders/Apple%20High%20Sierra%20Debug%20JSC%20%28Tests%29/builds/1509/steps/jscore-test/logs/stdio


ASSERTION FAILED: Unsafe branch over register allocation at instruction offset 270 in jump offset range 270..305
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: !(low &lt;= m_offset &amp;&amp; m_offset &lt;= high)
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: /Volumes/Data/slave/highsierra-debug/build/Source/JavaScriptCore/assembler/AbstractMacroAssembler.h(818) : void JSC::AbstractMacroAssembler&lt;JSC::X86Assembler&gt;::RegisterAllocationOffset::checkOffsets(unsigned int, unsigned int) [AssemblerType = JSC::X86Assembler]
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 1   0x102db92c9 WTFCrash
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: ASSERTION FAILED: Unsafe branch over register allocation at instruction offset 276 in jump offset range 276..323
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: !(low &lt;= m_offset &amp;&amp; m_offset &lt;= high)
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: /Volumes/Data/slave/highsierra-debug/build/Source/JavaScriptCore/assembler/AbstractMacroAssembler.h(818) : void JSC::AbstractMacroAssembler&lt;JSC::X86Assembler&gt;::RegisterAllocationOffset::checkOffsets(unsigned int, unsigned int) [AssemblerType = JSC::X86Assembler]
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 2   0x102f60c2d JSC::AbstractMacroAssembler&lt;JSC::X86Assembler&gt;::RegisterAllocationOffset::checkOffsets(unsigned int, unsigned int)
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 1   0x102db92c9 WTFCrash
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 3   0x102f609cf JSC::AbstractMacroAssembler&lt;JSC::X86Assembler&gt;::checkRegisterAllocationAgainstBranchRange(unsigned int, unsigned int)
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 2   0x102f60c2d JSC::AbstractMacroAssembler&lt;JSC::X86Assembler&gt;::RegisterAllocationOffset::checkOffsets(unsigned int, unsigned int)
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 4   0x102eb1a2c JSC::AbstractMacroAssembler&lt;JSC::X86Assembler&gt;::Jump::link(JSC::AbstractMacroAssembler&lt;JSC::X86Assembler&gt;*) const
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 3   0x102f609cf JSC::AbstractMacroAssembler&lt;JSC::X86Assembler&gt;::checkRegisterAllocationAgainstBranchRange(unsigned int, unsigned int)
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 5   0x1030deea9 JSC::DFG::SpeculativeJIT::compile(JSC::DFG::Node*)
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 4   0x102eb1a2c JSC::AbstractMacroAssembler&lt;JSC::X86Assembler&gt;::Jump::link(JSC::AbstractMacroAssembler&lt;JSC::X86Assembler&gt;*) const
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 6   0x102ec1890 JSC::DFG::SpeculativeJIT::compileCurrentBlock()
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 5   0x1030deea9 JSC::DFG::SpeculativeJIT::compile(JSC::DFG::Node*)
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 7   0x102ec3315 JSC::DFG::SpeculativeJIT::compile()
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 6   0x102ec1890 JSC::DFG::SpeculativeJIT::compileCurrentBlock()
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 8   0x103a1be57 JSC::DFG::JITCompiler::compileBody()
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 7   0x102ec3315 JSC::DFG::SpeculativeJIT::compile()
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 9   0x103a207a5 JSC::DFG::JITCompiler::compileFunction()
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 8   0x103a1be57 JSC::DFG::JITCompiler::compileBody()
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 10  0x103b5225a JSC::DFG::Plan::compileInThreadImpl()
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 9   0x103a207a5 JSC::DFG::JITCompiler::compileFunction()
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 11  0x103b4f852 JSC::DFG::Plan::compileInThread(JSC::DFG::ThreadData*)
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 10  0x103b5225a JSC::DFG::Plan::compileInThreadImpl()
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 12  0x103c05436 JSC::DFG::Worklist::ThreadBody::work()
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 11  0x103b4f852 JSC::DFG::Plan::compileInThread(JSC::DFG::ThreadData*)
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 13  0x102dcee9f WTF::AutomaticThread::start(WTF::AbstractLocker const&amp;)::$_0::operator()() const
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 12  0x103c05436 JSC::DFG::Worklist::ThreadBody::work()
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 14  0x102dcea89 WTF::Function&lt;void ()&gt;::CallableWrapper&lt;WTF::AutomaticThread::start(WTF::AbstractLocker const&amp;)::$_0&gt;::call()
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 13  0x102dcee9f WTF::AutomaticThread::start(WTF::AbstractLocker const&amp;)::$_0::operator()() const
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 15  0x102de052d WTF::Function&lt;void ()&gt;::operator()() const
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 14  0x102dcea89 WTF::Function&lt;void ()&gt;::CallableWrapper&lt;WTF::AutomaticThread::start(WTF::AbstractLocker const&amp;)::$_0&gt;::call()
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 16  0x102e6a9b3 WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*)
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 15  0x102de052d WTF::Function&lt;void ()&gt;::operator()() const
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 17  0x102e709b5 WTF::wtfThreadEntryPoint(void*)
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 16  0x102e6a9b3 WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*)
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 18  0x7fff6eb48661 _pthread_body
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 17  0x102e709b5 WTF::wtfThreadEntryPoint(void*)
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 19  0x7fff6eb4850d _pthread_body
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 18  0x7fff6eb48661 _pthread_body
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 20  0x7fff6eb47bf9 thread_start
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 19  0x7fff6eb4850d _pthread_body
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: 20  0x7fff6eb47bf9 thread_start
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: test_script_44127: line 2: 80592 Segmentation fault: 11  ( &quot;$@&quot; ../../../.vm/JavaScriptCore.framework/Resources/jsc --useFTLJIT\=false --useFunctionDotArguments\=true --validateExceptionChecks\=true --useDollarVM\=true --maxPerThreadStackUsage\=1572864 --useIntlPluralRules\=true --useTypeProfiler\=true --useFTLJIT\=true --thresholdForJITAfterWarmUp\=10 --thresholdForJITSoon\=10 --thresholdForOptimizeAfterWarmUp\=20 --thresholdForOptimizeAfterLongWarmUp\=20 --thresholdForOptimizeSoon\=20 --thresholdForFTLOptimizeAfterWarmUp\=20 --thresholdForFTLOptimizeSoon\=20 --maximumEvalCacheableSourceLength\=150000 --useEagerCodeBlockJettisonTiming\=true type-profiler-gc.js )
typeProfiler.yaml/typeProfiler/type-profiler-gc.js.ftl-type-profiler-ftl-eager: ERROR: Unexpected exit code: 139</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460703</commentid>
    <comment_count>1</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2018-09-18 13:29:37 -0700</bug_when>
    <thetext>This is the regression range according to the bot history:
https://trac.webkit.org/log/webkit/?action=stop_on_copy&amp;mode=stop_on_copy&amp;rev=236096&amp;stop_rev=236077&amp;limit=100&amp;verbose=on

This was the only JSC change: https://trac.webkit.org/changeset/236089/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460708</commentid>
    <comment_count>2</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-09-18 13:33:11 -0700</bug_when>
    <thetext>Will fix. This is a preexisting bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461065</commentid>
    <comment_count>3</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-09-19 12:03:59 -0700</bug_when>
    <thetext>Sorry was busy with a different bug, will look into this now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461069</commentid>
    <comment_count>4</comment_count>
      <attachid>350140</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-09-19 12:16:05 -0700</bug_when>
    <thetext>Created attachment 350140
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461102</commentid>
    <comment_count>5</comment_count>
      <attachid>350140</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-09-19 13:30:17 -0700</bug_when>
    <thetext>Comment on attachment 350140
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461120</commentid>
    <comment_count>6</comment_count>
      <attachid>350140</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-19 14:09:22 -0700</bug_when>
    <thetext>Comment on attachment 350140
patch

Clearing flags on attachment: 350140

Committed r236224: &lt;https://trac.webkit.org/changeset/236224&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461121</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-19 14:09:24 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461124</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-09-19 14:10:34 -0700</bug_when>
    <thetext>&lt;rdar://problem/44615988&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350140</attachid>
            <date>2018-09-19 12:16:05 -0700</date>
            <delta_ts>2018-09-19 14:09:22 -0700</delta_ts>
            <desc>patch</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>1796</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjM2MjEzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBA
CisyMDE4LTA5LTE5ICBTYWFtIGJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IENoZWNrU3RydWN0dXJlT3JFbXB0eSBzaG91bGQgcGFzcyBpbiBhIHRlbXBHUFIgdG8gZW1pdFN0
cnVjdHVyZUNoZWNrIHNpbmNlIGl0IG1heSBqdW1wIG92ZXIgdGhhdCBjb2RlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODk3MDMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGZpeGVzIGEgY3Jhc2gg
dGhhdCBhIFR5cGVQcm9maWxlciBjaGFuZ2UgcmV2ZWFsZWQuCisKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGUpOgorCiAyMDE4LTA5LTE4ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4K
IAogICAgICAgICBFbnN1cmUgdGhhdCBGb3JJbkNvbnRleHRzIGFyZSBpbnZhbGlkYXRlZCBpZiB0
aGVpciBsb29wIGxvY2FsIGlzIG92ZXItd3JpdHRlbi4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkocmV2aXNpb24gMjM2MjEz
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzU1MiwxMSArMzU1MiwxOSBAQCB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBDaGVja1N0cnVjdHVyZU9yRW1wdHk6IHsK
ICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgY2VsbCh0aGlzLCBub2RlLT5jaGlsZDEoKSk7
CiAgICAgICAgIEdQUlJlZyBjZWxsR1BSID0gY2VsbC5ncHIoKTsKKworICAgICAgICBHUFJSZWcg
dGVtcEdQUiA9IEludmFsaWRHUFJSZWc7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8R1BSVGVtcG9y
YXJ5PiB0ZW1wOworICAgICAgICBpZiAobm9kZS0+c3RydWN0dXJlU2V0KCkuc2l6ZSgpID4gMSkg
eworICAgICAgICAgICAgdGVtcC5lbXBsYWNlKHRoaXMpOworICAgICAgICAgICAgdGVtcEdQUiA9
IHRlbXAtPmdwcigpOworICAgICAgICB9CisKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAg
aXNFbXB0eTsKICAgICAgICAgaWYgKG1faW50ZXJwcmV0ZXIuZm9yTm9kZShub2RlLT5jaGlsZDEo
KSkubV90eXBlICYgU3BlY0VtcHR5KQogICAgICAgICAgICAgaXNFbXB0eSA9IG1faml0LmJyYW5j
aElmRW1wdHkoY2VsbEdQUik7CiAKLSAgICAgICAgZW1pdFN0cnVjdHVyZUNoZWNrKG5vZGUsIGNl
bGxHUFIsIEludmFsaWRHUFJSZWcpOworICAgICAgICBlbWl0U3RydWN0dXJlQ2hlY2sobm9kZSwg
Y2VsbEdQUiwgdGVtcEdQUik7CiAKICAgICAgICAgaWYgKGlzRW1wdHkuaXNTZXQoKSkKICAgICAg
ICAgICAgIGlzRW1wdHkubGluaygmbV9qaXQpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>