<?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>224782</bug_id>
          
          <creation_ts>2021-04-19 13:35:58 -0700</creation_ts>
          <short_desc>-Warray-bounds warning in AirAllocateRegistersByGraphColoring.cpp with GCC 11</short_desc>
          <delta_ts>2021-04-23 02:39: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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</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="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Michael Catanzaro">mcatanzaro</assigned_to>
          <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>lingcherd_ho</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1751944</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-04-19 13:35:58 -0700</bug_when>
    <thetext>With GCC 11, we have a nice -Warray-bounds warning spam coming from AirAllocateRegistersByGraphColoring.cpp:

[254/1653] Building CXX object Source/JavaScriptCore/CMak...edSources/unified-sources/UnifiedSource-23a5fd0e-10.cpp.o
In file included from JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-23a5fd0e-10.cpp:7:
../../Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp: In member function ‘void JSC::B3::Air::{anonymous}::GraphColoringRegisterAllocation::allocateOnBank() [with JSC::B3::Bank bank = JSC::B3::GP]’:
../../Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp:1559:29: warning: array subscript ‘JSC::B3::Air::{anonymous}::ColoringAllocator&lt;JSC::B3::GP, JSC::B3::Air::{anonymous}::IRC, JSC::B3::Air::{anonymous}::InterferenceEdge&lt;short unsigned int, unsigned int&gt; &gt;[0]’ is partly outside array bounds of ‘JSC::B3::Air::{anonymous}::ColoringAllocator&lt;JSC::B3::GP, JSC::B3::Air::{anonymous}::Briggs, JSC::B3::Air::{anonymous}::InterferenceEdge&lt;unsigned int, long unsigned int&gt; &gt; [1]’ [-Warray-bounds]
 1559 |         m_coloredTmp.resize(m_lastPrecoloredRegisterIndex + 1);
      |                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp:1895:91: note: while referencing ‘allocator’
 1895 |                     ColoringAllocator&lt;bank, Briggs, InterferenceEdge&lt;uint32_t, uint64_t&gt;&gt; allocator(m_code, m_tmpWidth, m_useCounts, unspillableTmps);
      |                                                                                           ^~~~~~~~~
../../Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp:1560:35: warning: array subscript ‘JSC::B3::Air::{anonymous}::ColoringAllocator&lt;JSC::B3::GP, JSC::B3::Air::{anonymous}::IRC, JSC::B3::Air::{anonymous}::InterferenceEdge&lt;short unsigned int, unsigned int&gt; &gt;[0]’ is partly outside array bounds of ‘JSC::B3::Air::{anonymous}::ColoringAllocator&lt;JSC::B3::GP, JSC::B3::Air::{anonymous}::Briggs, JSC::B3::Air::{anonymous}::InterferenceEdge&lt;unsigned int, long unsigned int&gt; &gt; [1]’ [-Warray-bounds]
 1560 |         for (unsigned i = 1; i &lt;= m_lastPrecoloredRegisterIndex; ++i) {
      |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp:1895:91: note: while referencing ‘allocator’
 1895 |                     ColoringAllocator&lt;bank, Briggs, InterferenceEdge&lt;uint32_t, uint64_t&gt;&gt; allocator(m_code, m_tmpWidth, m_useCounts, unspillableTmps);
      |                                                                                           ^~~~~~~~~
../../Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp:1559:29: warning: array subscript ‘JSC::B3::Air::{anonymous}::ColoringAllocator&lt;JSC::B3::GP, JSC::B3::Air::{anonymous}::IRC, JSC::B3::Air::{anonymous}::InterferenceEdge&lt;short unsigned int, unsigned int&gt; &gt;[0]’ is partly outside array bounds of ‘JSC::B3::Air::{anonymous}::ColoringAllocator&lt;JSC::B3::GP, JSC::B3::Air::{anonymous}::Briggs, JSC::B3::Air::{anonymous}::InterferenceEdge&lt;short unsigned int, unsigned int&gt; &gt; [1]’ [-Warray-bounds]
 1559 |         m_coloredTmp.resize(m_lastPrecoloredRegisterIndex + 1);
      |                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp:1892:91: note: while referencing ‘allocator’
 1892 |                     ColoringAllocator&lt;bank, Briggs, InterferenceEdge&lt;uint16_t, uint32_t&gt;&gt; allocator(m_code, m_tmpWidth, m_useCounts, unspillableTmps);
      |                                                                                           ^~~~~~~~~
../../Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp:1560:35: warning: array subscript ‘JSC::B3::Air::{anonymous}::ColoringAllocator&lt;JSC::B3::GP, JSC::B3::Air::{anonymous}::IRC, JSC::B3::Air::{anonymous}::InterferenceEdge&lt;short unsigned int, unsigned int&gt; &gt;[0]’ is partly outside array bounds of ‘JSC::B3::Air::{anonymous}::ColoringAllocator&lt;JSC::B3::GP, JSC::B3::Air::{anonymous}::Briggs, JSC::B3::Air::{anonymous}::InterferenceEdge&lt;short unsigned int, unsigned int&gt; &gt; [1]’ [-Warray-bounds]
 1560 |         for (unsigned i = 1; i &lt;= m_lastPrecoloredRegisterIndex; ++i) {
      |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp:1892:91: note: while referencing ‘allocator’
 1892 |                     ColoringAllocator&lt;bank, Briggs, InterferenceEdge&lt;uint16_t, uint32_t&gt;&gt; allocator(m_code, m_tmpWidth, m_useCounts, unspillableTmps);
      |                                                                                           ^~~~~~~~~
../../Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp: In member function ‘void JSC::B3::Air::{anonymous}::GraphColoringRegisterAllocation::allocateOnBank() [with JSC::B3::Bank bank = JSC::B3::FP]’:
../../Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp:1559:29: warning: array subscript ‘JSC::B3::Air::{anonymous}::ColoringAllocator&lt;JSC::B3::FP, JSC::B3::Air::{anonymous}::IRC, JSC::B3::Air::{anonymous}::InterferenceEdge&lt;short unsigned int, unsigned int&gt; &gt;[0]’ is partly outside array bounds of ‘JSC::B3::Air::{anonymous}::ColoringAllocator&lt;JSC::B3::FP, JSC::B3::Air::{anonymous}::Briggs, JSC::B3::Air::{anonymous}::InterferenceEdge&lt;unsigned int, long unsigned int&gt; &gt; [1]’ [-Warray-bounds]
 1559 |         m_coloredTmp.resize(m_lastPrecoloredRegisterIndex + 1);
      |                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp:1895:91: note: while referencing ‘allocator’
 1895 |                     ColoringAllocator&lt;bank, Briggs, InterferenceEdge&lt;uint32_t, uint64_t&gt;&gt; allocator(m_code, m_tmpWidth, m_useCounts, unspillableTmps);
      |                                                                                           ^~~~~~~~~
../../Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp:1560:35: warning: array subscript ‘JSC::B3::Air::{anonymous}::ColoringAllocator&lt;JSC::B3::FP, JSC::B3::Air::{anonymous}::IRC, JSC::B3::Air::{anonymous}::InterferenceEdge&lt;short unsigned int, unsigned int&gt; &gt;[0]’ is partly outside array bounds of ‘JSC::B3::Air::{anonymous}::ColoringAllocator&lt;JSC::B3::FP, JSC::B3::Air::{anonymous}::Briggs, JSC::B3::Air::{anonymous}::InterferenceEdge&lt;unsigned int, long unsigned int&gt; &gt; [1]’ [-Warray-bounds]
 1560 |         for (unsigned i = 1; i &lt;= m_lastPrecoloredRegisterIndex; ++i) {
      |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp:1895:91: note: while referencing ‘allocator’
 1895 |                     ColoringAllocator&lt;bank, Briggs, InterferenceEdge&lt;uint32_t, uint64_t&gt;&gt; allocator(m_code, m_tmpWidth, m_useCounts, unspillableTmps);
      |                                                                                           ^~~~~~~~~
../../Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp:1544:21: warning: array subscript ‘const JSC::B3::Air::{anonymous}::ColoringAllocator&lt;JSC::B3::FP, JSC::B3::Air::{anonymous}::IRC, JSC::B3::Air::{anonymous}::InterferenceEdge&lt;short unsigned int, unsigned int&gt; &gt;[0]’ is partly outside array bounds of ‘JSC::B3::Air::{anonymous}::ColoringAllocator&lt;JSC::B3::FP, JSC::B3::Air::{anonymous}::Briggs, JSC::B3::Air::{anonymous}::InterferenceEdge&lt;unsigned int, long unsigned int&gt; &gt; [1]’ [-Warray-bounds]
 1544 |             dataLog(m_code);
      |                     ^~~~~~
../../Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp:1895:91: note: while referencing ‘allocator’
 1895 |                     ColoringAllocator&lt;bank, Briggs, InterferenceEdge&lt;uint32_t, uint64_t&gt;&gt; allocator(m_code, m_tmpWidth, m_useCounts, unspillableTmps);
      |                                                                                           ^~~~~~~~~
../../Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp:1544:21: warning: array subscript ‘const JSC::B3::Air::{anonymous}::ColoringAllocator&lt;JSC::B3::FP, JSC::B3::Air::{anonymous}::IRC, JSC::B3::Air::{anonymous}::InterferenceEdge&lt;short unsigned int, unsigned int&gt; &gt;[0]’ is partly outside array bounds of ‘JSC::B3::Air::{anonymous}::ColoringAllocator&lt;JSC::B3::FP, JSC::B3::Air::{anonymous}::Briggs, JSC::B3::Air::{anonymous}::InterferenceEdge&lt;unsigned int, long unsigned int&gt; &gt; [1]’ [-Warray-bounds]
 1544 |             dataLog(m_code);
      |                     ^~~~~~
../../Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp:1895:91: note: while referencing ‘allocator’
 1895 |                     ColoringAllocator&lt;bank, Briggs, InterferenceEdge&lt;uint32_t, uint64_t&gt;&gt; allocator(m_code, m_tmpWidth, m_useCounts, unspillableTmps);
      |                                                                                           ^~~~~~~~~
../../Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp:1544:21: warning: array subscript ‘const JSC::B3::Air::{anonymous}::ColoringAllocator&lt;JSC::B3::FP, JSC::B3::Air::{anonymous}::IRC, JSC::B3::Air::{anonymous}::InterferenceEdge&lt;short unsigned int, unsigned int&gt; &gt;[0]’ is partly outside array bounds of ‘JSC::B3::Air::{anonymous}::ColoringAllocator&lt;JSC::B3::FP, JSC::B3::Air::{anonymous}::Briggs, JSC::B3::Air::{anonymous}::InterferenceEdge&lt;unsigned int, long unsigned int&gt; &gt; [1]’ [-Warray-bounds]
 1544 |             dataLog(m_code);
      |                     ^~~~~~
../../Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp:1895:91: note: while referencing ‘allocator’
 1895 |                     ColoringAllocator&lt;bank, Briggs, InterferenceEdge&lt;uint32_t, uint64_t&gt;&gt; allocator(m_code, m_tmpWidth, m_useCounts, unspillableTmps);
      |                                                                                           ^~~~~~~~~
../../Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp:1559:29: warning: array subscript ‘JSC::B3::Air::{anonymous}::ColoringAllocator&lt;JSC::B3::FP, JSC::B3::Air::{anonymous}::IRC, JSC::B3::Air::{anonymous}::InterferenceEdge&lt;short unsigned int, unsigned int&gt; &gt;[0]’ is partly outside array bounds of ‘JSC::B3::Air::{anonymous}::ColoringAllocator&lt;JSC::B3::FP, JSC::B3::Air::{anonymous}::Briggs, JSC::B3::Air::{anonymous}::InterferenceEdge&lt;short unsigned int, unsigned int&gt; &gt; [1]’ [-Warray-bounds]
 1559 |         m_coloredTmp.resize(m_lastPrecoloredRegisterIndex + 1);
      |                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp:1892:91: note: while referencing ‘allocator’
 1892 |                     ColoringAllocator&lt;bank, Briggs, InterferenceEdge&lt;uint16_t, uint32_t&gt;&gt; allocator(m_code, m_tmpWidth, m_useCounts, unspillableTmps);
      |                                                                                           ^~~~~~~~~
../../Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp:1560:35: warning: array subscript ‘JSC::B3::Air::{anonymous}::ColoringAllocator&lt;JSC::B3::FP, JSC::B3::Air::{anonymous}::IRC, JSC::B3::Air::{anonymous}::InterferenceEdge&lt;short unsigned int, unsigned int&gt; &gt;[0]’ is partly outside array bounds of ‘JSC::B3::Air::{anonymous}::ColoringAllocator&lt;JSC::B3::FP, JSC::B3::Air::{anonymous}::Briggs, JSC::B3::Air::{anonymous}::InterferenceEdge&lt;short unsigned int, unsigned int&gt; &gt; [1]’ [-Warray-bounds]
 1560 |         for (unsigned i = 1; i &lt;= m_lastPrecoloredRegisterIndex; ++i) {
      |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp:1892:91: note: while referencing ‘allocator’
 1892 |                     ColoringAllocator&lt;bank, Briggs, InterferenceEdge&lt;uint16_t, uint32_t&gt;&gt; allocator(m_code, m_tmpWidth, m_useCounts, unspillableTmps);
      |                                                                                           ^~~~~~~~~
../../Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp:1544:21: warning: array subscript ‘const JSC::B3::Air::{anonymous}::ColoringAllocator&lt;JSC::B3::FP, JSC::B3::Air::{anonymous}::IRC, JSC::B3::Air::{anonymous}::InterferenceEdge&lt;short unsigned int, unsigned int&gt; &gt;[0]’ is partly outside array bounds of ‘JSC::B3::Air::{anonymous}::ColoringAllocator&lt;JSC::B3::FP, JSC::B3::Air::{anonymous}::Briggs, JSC::B3::Air::{anonymous}::InterferenceEdge&lt;short unsigned int, unsigned int&gt; &gt; [1]’ [-Warray-bounds]
 1544 |             dataLog(m_code);
      |                     ^~~~~~
../../Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp:1892:91: note: while referencing ‘allocator’
 1892 |                     ColoringAllocator&lt;bank, Briggs, InterferenceEdge&lt;uint16_t, uint32_t&gt;&gt; allocator(m_code, m_tmpWidth, m_useCounts, unspillableTmps);
      |                                                                                           ^~~~~~~~~
../../Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp:1544:21: warning: array subscript ‘const JSC::B3::Air::{anonymous}::ColoringAllocator&lt;JSC::B3::FP, JSC::B3::Air::{anonymous}::IRC, JSC::B3::Air::{anonymous}::InterferenceEdge&lt;short unsigned int, unsigned int&gt; &gt;[0]’ is partly outside array bounds of ‘JSC::B3::Air::{anonymous}::ColoringAllocator&lt;JSC::B3::FP, JSC::B3::Air::{anonymous}::Briggs, JSC::B3::Air::{anonymous}::InterferenceEdge&lt;short unsigned int, unsigned int&gt; &gt; [1]’ [-Warray-bounds]
 1544 |             dataLog(m_code);
      |                     ^~~~~~
../../Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp:1892:91: note: while referencing ‘allocator’
 1892 |                     ColoringAllocator&lt;bank, Briggs, InterferenceEdge&lt;uint16_t, uint32_t&gt;&gt; allocator(m_code, m_tmpWidth, m_useCounts, unspillableTmps);
      |                                                                                           ^~~~~~~~~
../../Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp:1544:21: warning: array subscript ‘const JSC::B3::Air::{anonymous}::ColoringAllocator&lt;JSC::B3::FP, JSC::B3::Air::{anonymous}::IRC, JSC::B3::Air::{anonymous}::InterferenceEdge&lt;short unsigned int, unsigned int&gt; &gt;[0]’ is partly outside array bounds of ‘JSC::B3::Air::{anonymous}::ColoringAllocator&lt;JSC::B3::FP, JSC::B3::Air::{anonymous}::Briggs, JSC::B3::Air::{anonymous}::InterferenceEdge&lt;short unsigned int, unsigned int&gt; &gt; [1]’ [-Warray-bounds]
 1544 |             dataLog(m_code);
      |                     ^~~~~~
../../Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp:1892:91: note: while referencing ‘allocator’
 1892 |                     ColoringAllocator&lt;bank, Briggs, InterferenceEdge&lt;uint16_t, uint32_t&gt;&gt; allocator(m_code, m_tmpWidth, m_useCounts, unspillableTmps);
      |                                                                                           ^~~~~~~~~

The warnings can be silenced like this:

diff --git a/Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp b/Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp
index e7a20e90ab28..82067c5b3c2b 100644
--- a/Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp
+++ b/Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp
@@ -1541,7 +1541,9 @@ public:
         if (!reg) {
             dataLog(&quot;FATAL: No color for &quot;, tmp, &quot;\n&quot;);
             dataLog(&quot;Code:\n&quot;);
+IGNORE_WARNINGS_BEGIN(&quot;array-bounds&quot;)
             dataLog(m_code);
+IGNORE_WARNINGS_END
             RELEASE_ASSERT_NOT_REACHED();
         }
         return reg;
@@ -1556,12 +1558,14 @@ protected:
 
     void initializePrecoloredTmp()
     {
+IGNORE_WARNINGS_BEGIN(&quot;array-bounds&quot;)
         m_coloredTmp.resize(m_lastPrecoloredRegisterIndex + 1);
         for (unsigned i = 1; i &lt;= m_lastPrecoloredRegisterIndex; ++i) {
             Tmp tmp = TmpMapper::tmpFromAbsoluteIndex(i);
             ASSERT(tmp.isReg());
             m_coloredTmp[i] = tmp.reg();
         }
+IGNORE_WARNINGS_END
     }
 
     bool mayBeCoalesced(Arg left, Arg right)

I&apos;m baffled because the first case does not appear to contain any array access, while the second case appears to be clearly safe given that m_coloredTmp is resized to m_lastPrecoloredRegisterIndex + 1 and the code does not go any higher than this. Looks like a false-positive to me, so my proposal is to just commit the IGNORE_WARNINGS macros unless somebody else wants to investigate further.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751947</commentid>
    <comment_count>1</comment_count>
      <attachid>426471</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-04-19 13:37:12 -0700</bug_when>
    <thetext>Created attachment 426471
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751994</commentid>
    <comment_count>2</comment_count>
      <attachid>426471</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-04-19 15:01:41 -0700</bug_when>
    <thetext>Comment on attachment 426471
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:8
&gt; +        These warnings don&apos;t make any sense to me. Suppress them.

If the warnings don’t make sense, we may need a comment at each of these two sites.

&gt; Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp:1546
&gt; +IGNORE_WARNINGS_BEGIN(&quot;array-bounds&quot;)
&gt;              dataLog(m_code);
&gt; +IGNORE_WARNINGS_END

How did you settle on using IGNORE_WARNINGS_BEGIN vs. IGNORE_GCC_WARNINGS_BEGIN?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1752030</commentid>
    <comment_count>3</comment_count>
      <attachid>426471</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-04-19 16:03:56 -0700</bug_when>
    <thetext>Comment on attachment 426471
Patch

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

&gt;&gt; Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp:1546
&gt;&gt; +IGNORE_WARNINGS_END
&gt; 
&gt; How did you settle on using IGNORE_WARNINGS_BEGIN vs. IGNORE_GCC_WARNINGS_BEGIN?

I didn&apos;t even consider it. I&apos;ll switch it to IGNORE_GCC_WARNINGS_BEGIN since clang isn&apos;t complaining here and this seems more likely to be a GCC bug than anything Clang is likely to warn about. And I&apos;ll add comments pointing to this issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1752492</commentid>
    <comment_count>4</comment_count>
      <attachid>426608</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-04-20 16:11:13 -0700</bug_when>
    <thetext>Created attachment 426608
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1752513</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-20 16:57:50 -0700</bug_when>
    <thetext>Committed r276329 (236809@main): &lt;https://commits.webkit.org/236809@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 426608.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753507</commentid>
    <comment_count>6</comment_count>
    <who name="Ling Ho">lingcherd_ho</who>
    <bug_when>2021-04-23 02:39:06 -0700</bug_when>
    <thetext>rdar://76926261</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426471</attachid>
            <date>2021-04-19 13:37:12 -0700</date>
            <delta_ts>2021-04-20 16:11:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224782-20210419153711.patch</filename>
            <type>text/plain</type>
            <size>1932</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2MjQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
NTdjMjBhZjA5MzFiYWZkMjY3NmEyMDhlYjM5YjJmYjQ5NGU4NjdjLi5mMWUwODdhYjhlYzMxMGM0
ZjMyZDcxZjM5MWE0ZWE0NDRjYWVmYzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAyMS0wNC0xOSAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGdu
b21lLm9yZz4KKworICAgICAgICAtV2FycmF5LWJvdW5kcyB3YXJuaW5nIGluIEFpckFsbG9jYXRl
UmVnaXN0ZXJzQnlHcmFwaENvbG9yaW5nLmNwcCB3aXRoIEdDQyAxMQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0NzgyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlc2Ugd2FybmluZ3MgZG9uJ3QgbWFr
ZSBhbnkgc2Vuc2UgdG8gbWUuIFN1cHByZXNzIHRoZW0uCisKKyAgICAgICAgKiBiMy9haXIvQWly
QWxsb2NhdGVSZWdpc3RlcnNCeUdyYXBoQ29sb3JpbmcuY3BwOgorCiAyMDIxLTA0LTE4ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgYnVp
bGQgZml4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFsbG9j
YXRlUmVnaXN0ZXJzQnlHcmFwaENvbG9yaW5nLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyQWxsb2NhdGVSZWdpc3RlcnNCeUdyYXBoQ29sb3JpbmcuY3BwCmluZGV4IGU3YTIw
ZTkwYWIyODYxN2FhNzRkNzM4MTFjNGM1N2U1NmM3YzA3NTAuLjgyMDY3YzViM2MyYjhmNjdlNDEx
NmI3ODY2MTdlY2MxZjgyMDgwNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyQWxsb2NhdGVSZWdpc3RlcnNCeUdyYXBoQ29sb3JpbmcuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQWxsb2NhdGVSZWdpc3RlcnNCeUdyYXBoQ29sb3Jp
bmcuY3BwCkBAIC0xNTQxLDcgKzE1NDEsOSBAQCBwdWJsaWM6CiAgICAgICAgIGlmICghcmVnKSB7
CiAgICAgICAgICAgICBkYXRhTG9nKCJGQVRBTDogTm8gY29sb3IgZm9yICIsIHRtcCwgIlxuIik7
CiAgICAgICAgICAgICBkYXRhTG9nKCJDb2RlOlxuIik7CitJR05PUkVfV0FSTklOR1NfQkVHSU4o
ImFycmF5LWJvdW5kcyIpCiAgICAgICAgICAgICBkYXRhTG9nKG1fY29kZSk7CitJR05PUkVfV0FS
TklOR1NfRU5ECiAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAg
ICAgICB9CiAgICAgICAgIHJldHVybiByZWc7CkBAIC0xNTU2LDEyICsxNTU4LDE0IEBAIHByb3Rl
Y3RlZDoKIAogICAgIHZvaWQgaW5pdGlhbGl6ZVByZWNvbG9yZWRUbXAoKQogICAgIHsKK0lHTk9S
RV9XQVJOSU5HU19CRUdJTigiYXJyYXktYm91bmRzIikKICAgICAgICAgbV9jb2xvcmVkVG1wLnJl
c2l6ZShtX2xhc3RQcmVjb2xvcmVkUmVnaXN0ZXJJbmRleCArIDEpOwogICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAxOyBpIDw9IG1fbGFzdFByZWNvbG9yZWRSZWdpc3RlckluZGV4OyArK2kpIHsK
ICAgICAgICAgICAgIFRtcCB0bXAgPSBUbXBNYXBwZXI6OnRtcEZyb21BYnNvbHV0ZUluZGV4KGkp
OwogICAgICAgICAgICAgQVNTRVJUKHRtcC5pc1JlZygpKTsKICAgICAgICAgICAgIG1fY29sb3Jl
ZFRtcFtpXSA9IHRtcC5yZWcoKTsKICAgICAgICAgfQorSUdOT1JFX1dBUk5JTkdTX0VORAogICAg
IH0KIAogICAgIGJvb2wgbWF5QmVDb2FsZXNjZWQoQXJnIGxlZnQsIEFyZyByaWdodCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426608</attachid>
            <date>2021-04-20 16:11:13 -0700</date>
            <delta_ts>2021-04-20 16:57:51 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-224782-20210420181112.patch</filename>
            <type>text/plain</type>
            <size>2131</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2MzI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
NjJlOGVmODYyMGEwYmM1YTk4YjU0NmIzYmM1ZGRiOWVkODM1OGZmLi43YTdkYjc2Mzg1ODhmNjQ5
ZDlhN2JiMjEyMDQwMzNmZjY4OTY1YTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAyMS0wNC0yMCAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGdu
b21lLm9yZz4KKworICAgICAgICAtV2FycmF5LWJvdW5kcyB3YXJuaW5nIGluIEFpckFsbG9jYXRl
UmVnaXN0ZXJzQnlHcmFwaENvbG9yaW5nLmNwcCB3aXRoIEdDQyAxMQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0NzgyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgVGhlc2Ugd2FybmluZ3MgZG9uJ3QgbWFrZSBh
bnkgc2Vuc2UgdG8gbWUuIFN1cHByZXNzIHRoZW0uCisKKyAgICAgICAgKiBiMy9haXIvQWlyQWxs
b2NhdGVSZWdpc3RlcnNCeUdyYXBoQ29sb3JpbmcuY3BwOgorCiAyMDIxLTA0LTIwICBLZWl0aCBN
aWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZ1bGxHQ0FjdGl2aXR5
Q2FsbGJhY2sgc2hvdWxkIHVzZSB0aGUgcGVyY2VudGFnZSBvZiBwYWdlcyB1bmNvbXByZXNzZWQg
aW4gUkFNIHRvIGRldGVybWluZSBkZWZlcnJhbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlyQWxsb2NhdGVSZWdpc3RlcnNCeUdyYXBoQ29sb3JpbmcuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBbGxvY2F0ZVJlZ2lzdGVyc0J5R3JhcGhD
b2xvcmluZy5jcHAKaW5kZXggZTdhMjBlOTBhYjI4NjE3YWE3NGQ3MzgxMWM0YzU3ZTU2YzdjMDc1
MC4uZDAxNjlhZTA3NGQ3MjI3OGIwZDRlNjk0NzI4MzRiNzM2NGZlYTdmZCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBbGxvY2F0ZVJlZ2lzdGVyc0J5R3JhcGhD
b2xvcmluZy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBbGxvY2F0
ZVJlZ2lzdGVyc0J5R3JhcGhDb2xvcmluZy5jcHAKQEAgLTE1NDEsNyArMTU0MSwxMCBAQCBwdWJs
aWM6CiAgICAgICAgIGlmICghcmVnKSB7CiAgICAgICAgICAgICBkYXRhTG9nKCJGQVRBTDogTm8g
Y29sb3IgZm9yICIsIHRtcCwgIlxuIik7CiAgICAgICAgICAgICBkYXRhTG9nKCJDb2RlOlxuIik7
CisvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0NzgyCitJR05P
UkVfR0NDX1dBUk5JTkdTX0JFR0lOKCJhcnJheS1ib3VuZHMiKQogICAgICAgICAgICAgZGF0YUxv
ZyhtX2NvZGUpOworSUdOT1JFX0dDQ19XQVJOSU5HU19FTkQKICAgICAgICAgICAgIFJFTEVBU0Vf
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHJlZzsKQEAg
LTE1NTYsMTIgKzE1NTksMTUgQEAgcHJvdGVjdGVkOgogCiAgICAgdm9pZCBpbml0aWFsaXplUHJl
Y29sb3JlZFRtcCgpCiAgICAgeworLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyNDc4MgorSUdOT1JFX0dDQ19XQVJOSU5HU19CRUdJTigiYXJyYXktYm91bmRzIikK
ICAgICAgICAgbV9jb2xvcmVkVG1wLnJlc2l6ZShtX2xhc3RQcmVjb2xvcmVkUmVnaXN0ZXJJbmRl
eCArIDEpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDw9IG1fbGFzdFByZWNvbG9y
ZWRSZWdpc3RlckluZGV4OyArK2kpIHsKICAgICAgICAgICAgIFRtcCB0bXAgPSBUbXBNYXBwZXI6
OnRtcEZyb21BYnNvbHV0ZUluZGV4KGkpOwogICAgICAgICAgICAgQVNTRVJUKHRtcC5pc1JlZygp
KTsKICAgICAgICAgICAgIG1fY29sb3JlZFRtcFtpXSA9IHRtcC5yZWcoKTsKICAgICAgICAgfQor
SUdOT1JFX0dDQ19XQVJOSU5HU19FTkQKICAgICB9CiAKICAgICBib29sIG1heUJlQ29hbGVzY2Vk
KEFyZyBsZWZ0LCBBcmcgcmlnaHQpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>