<p dir="auto">The second comparison crashes. Probably due to weird alignment.</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="tag modlist = [int];                                                                                                                                                          

fn main() {                                                                                                                                                                   
    let ml = modlist([]);                                                                                                                                                     
    assert ml == modlist([]);                                                                                                                                                 
    assert ml == modlist([]);                                                                                                                                                 
}   "><pre class="notranslate"><code class="notranslate">tag modlist = [int];                                                                                                                                                          

fn main() {                                                                                                                                                                   
    let ml = modlist([]);                                                                                                                                                     
    assert ml == modlist([]);                                                                                                                                                 
    assert ml == modlist([]);                                                                                                                                                 
}   
</code></pre></div>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="==27842== Thread 2:
==27842== Invalid read of size 8
==27842==    at 0x50FA892: shape::ctxt&lt;shape::data&lt;shape::cmp, shape::ptr_pair&gt; &gt;::walk_vec0() (rust_shape.h:964)
==27842==    by 0x50FA084: shape::ctxt&lt;shape::data&lt;shape::cmp, shape::ptr_pair&gt; &gt;::walk() (rust_shape.h:372)
==27842==    by 0x50F6879: shape::cmp::walk_variant2(shape::tag_info&amp;, unsigned long, std::pair&lt;unsigned char const*, unsigned char const*&gt;) (rust_shape.cpp:423)
==27842==    by 0x50F6914: shape::cmp::walk_tag2(shape::tag_info&amp;, shape::data_pair&lt;unsigned long&gt; const&amp;) (rust_shape.h:955)
==27842==    by 0x50F98E5: shape::data&lt;shape::cmp, shape::ptr_pair&gt;::walk_tag1(shape::tag_info&amp;) (rust_shape.h:993)
==27842==    by 0x50F9A8C: shape::ctxt&lt;shape::data&lt;shape::cmp, shape::ptr_pair&gt; &gt;::walk_tag0() (rust_shape.h:468)
==27842==    by 0x50F9F6C: shape::ctxt&lt;shape::data&lt;shape::cmp, shape::ptr_pair&gt; &gt;::walk() (rust_shape.h:373)
==27842==    by 0x50F6732: shape_cmp_type (rust_shape.cpp:542)
==27842==    by 0x5101E48: ??? (in /home/brian/dev/rust/build/x86_64-unknown-linux-gnu/stage1/lib/rustc/x86_64-unknown-linux-gnu/lib/librustrt.so)
==27842==    by 0x64A06AF: ???
==27842==    by 0x64A5FEF: ???
==27842==    by 0x533482F: ??? (in /home/brian/dev/rust/build/x86_64-unknown-linux-gnu/stage1/lib/rustc/x86_64-unknown-linux-gnu/lib/librustrt.so)
==27842==  Address 0x100000000064ac1 is not stack'd, malloc'd or (recently) free'd"><pre class="notranslate"><code class="notranslate">==27842== Thread 2:
==27842== Invalid read of size 8
==27842==    at 0x50FA892: shape::ctxt&lt;shape::data&lt;shape::cmp, shape::ptr_pair&gt; &gt;::walk_vec0() (rust_shape.h:964)
==27842==    by 0x50FA084: shape::ctxt&lt;shape::data&lt;shape::cmp, shape::ptr_pair&gt; &gt;::walk() (rust_shape.h:372)
==27842==    by 0x50F6879: shape::cmp::walk_variant2(shape::tag_info&amp;, unsigned long, std::pair&lt;unsigned char const*, unsigned char const*&gt;) (rust_shape.cpp:423)
==27842==    by 0x50F6914: shape::cmp::walk_tag2(shape::tag_info&amp;, shape::data_pair&lt;unsigned long&gt; const&amp;) (rust_shape.h:955)
==27842==    by 0x50F98E5: shape::data&lt;shape::cmp, shape::ptr_pair&gt;::walk_tag1(shape::tag_info&amp;) (rust_shape.h:993)
==27842==    by 0x50F9A8C: shape::ctxt&lt;shape::data&lt;shape::cmp, shape::ptr_pair&gt; &gt;::walk_tag0() (rust_shape.h:468)
==27842==    by 0x50F9F6C: shape::ctxt&lt;shape::data&lt;shape::cmp, shape::ptr_pair&gt; &gt;::walk() (rust_shape.h:373)
==27842==    by 0x50F6732: shape_cmp_type (rust_shape.cpp:542)
==27842==    by 0x5101E48: ??? (in /home/brian/dev/rust/build/x86_64-unknown-linux-gnu/stage1/lib/rustc/x86_64-unknown-linux-gnu/lib/librustrt.so)
==27842==    by 0x64A06AF: ???
==27842==    by 0x64A5FEF: ???
==27842==    by 0x533482F: ??? (in /home/brian/dev/rust/build/x86_64-unknown-linux-gnu/stage1/lib/rustc/x86_64-unknown-linux-gnu/lib/librustrt.so)
==27842==  Address 0x100000000064ac1 is not stack'd, malloc'd or (recently) free'd
</code></pre></div>