title: Is IL instruction "cpobj" applicable for reference types?
body: <p><a href="https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.cpobj?view=netframework-4.8" rel="nofollow noreferrer">Microsoft Docs</a> says:</p>
  <blockquote>
  <p>The behavior of cpobj is unspecified if ……, or if classTok does not represent a value type.</p>
  </blockquote>
  <p>But <a href="https://www.ecma-international.org/wp-content/uploads/ECMA-335_6th_edition_june_2012.pdf#page=425" rel="nofollow noreferrer">ECMA 335</a> says:</p>
  <blockquote>
  <p>If typeTok is a reference type, the cpobj instruction has the same effect as ldind.ref followed by stind.ref.</p>
  </blockquote>
  <p>Which is correct?</p>