<p dir="auto">The following code:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="use std::rc::Rc

struct ProblemType {
    children [Option&lt;Rc&lt;ProblemType&gt;&gt;; 8],
}

impl ProblemType {
    fn breaks_compiler() -&gt; Option&lt;Rc&lt;ProblemType&gt;&gt; {
        None
    }
}"><pre class="notranslate"><code class="notranslate">use std::rc::Rc

struct ProblemType {
    children [Option&lt;Rc&lt;ProblemType&gt;&gt;; 8],
}

impl ProblemType {
    fn breaks_compiler() -&gt; Option&lt;Rc&lt;ProblemType&gt;&gt; {
        None
    }
}
</code></pre></div>
<p dir="auto">Causes LLVM to fail an assertion, claiming:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="rustc: /home/rustbuild/src/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/llvm/lib/IR/DataLayout.cpp:636: unsigned int llvm::DataLayout::getAlignment(llvm::Type*, bool) const: Assertion `Ty-&gt;isSized() &amp;&amp; &quot;Cannot getTypeInfo() on a type that is unsized!&quot;' failed."><pre class="notranslate"><code class="notranslate">rustc: /home/rustbuild/src/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/llvm/lib/IR/DataLayout.cpp:636: unsigned int llvm::DataLayout::getAlignment(llvm::Type*, bool) const: Assertion `Ty-&gt;isSized() &amp;&amp; "Cannot getTypeInfo() on a type that is unsized!"' failed.
</code></pre></div>
<p dir="auto">Example program:</p>
<div class="highlight highlight-source-rust notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="use std::mem;

struct AlignmentStruct {
    ptr: *mut [AlignmentStruct, ..1]
}

fn main() {
    println!(&quot;{}&quot;, ::std::mem::align_of::&lt;AlignmentStruct&gt;());
}"><pre class="notranslate"><span class="pl-k">use</span> std<span class="pl-kos">::</span>mem<span class="pl-kos">;</span>

<span class="pl-k">struct</span> <span class="pl-smi">AlignmentStruct</span> <span class="pl-kos">{</span>
    <span class="pl-c1">ptr</span><span class="pl-kos">:</span> <span class="pl-c1">*</span><span class="pl-k">mut</span> <span class="pl-kos">[</span><span class="pl-smi">AlignmentStruct</span><span class="pl-kos">,</span> ..<span class="pl-c1">1</span><span class="pl-kos">]</span>
<span class="pl-kos">}</span>

<span class="pl-k">fn</span> <span class="pl-en">main</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
    <span class="pl-en">println</span><span class="pl-en">!</span><span class="pl-kos">(</span><span class="pl-s">"{}"</span>, ::std::mem::align_of::&lt;<span class="pl-v">AlignmentStruct</span>&gt;<span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span></pre></div>
<p dir="auto">Error message:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="rustc: /home/rustbuild/src/rust-buildbot/slave/nightly-linux/build/src/llvm/lib/IR/DataLayout.cpp:636: unsigned int llvm::DataLayout::getAlignment(llvm::Type*, bool) const: Assertion `Ty-&gt;isSized() &amp;&amp; &quot;Cannot getTypeInfo() on a type that is unsized!&quot;' failed."><pre class="notranslate"><code class="notranslate">rustc: /home/rustbuild/src/rust-buildbot/slave/nightly-linux/build/src/llvm/lib/IR/DataLayout.cpp:636: unsigned int llvm::DataLayout::getAlignment(llvm::Type*, bool) const: Assertion `Ty-&gt;isSized() &amp;&amp; "Cannot getTypeInfo() on a type that is unsized!"' failed.
</code></pre></div>