<div dir="ltr">Ah, I just double checked LLVM's implementation and we actually prohibit it: <a href="http://llvm.org/docs/Extensions.html#section-directive">http://llvm.org/docs/Extensions.html#section-directive</a><div><br></div><div>"It cannot be another associative COMDAT section."</div><div>This patch LGTM.<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Feb 16, 2017 at 9:57 PM, Rui Ueyama <span dir="ltr"><<a href="mailto:ruiu@google.com" target="_blank">ruiu@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Okay. I'll try that tomorrow.</div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Feb 16, 2017 at 9:52 PM, David Majnemer <span dir="ltr"><<a href="mailto:david.majnemer@gmail.com" target="_blank">david.majnemer@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">No, COMDATs cannot be associated in that way. They should always form a DAG.<div><div class="m_3860302982693391432h5"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Feb 16, 2017 at 9:47 PM, Rui Ueyama <span dir="ltr"><<a href="mailto:ruiu@google.com" target="_blank">ruiu@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">That is probably not hard indeed, but you can create cycles if you use LLVM IR, can't you?</div><div class="m_3860302982693391432m_1179315900529683729HOEnZb"><div class="m_3860302982693391432m_1179315900529683729h5"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Feb 16, 2017 at 9:33 PM, David Majnemer <span dir="ltr"><<a href="mailto:david.majnemer@gmail.com" target="_blank">david.majnemer@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I believe its possible via LLVM IR, I don't think it'd be too hard to make it work.<div><div class="m_3860302982693391432m_1179315900529683729m_-9013346253921445550h5"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Feb 16, 2017 at 6:53 PM, Rui Ueyama <span dir="ltr"><<a href="mailto:ruiu@google.com" target="_blank">ruiu@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span>On Thu, Feb 16, 2017 at 6:49 PM, David Majnemer <span dir="ltr"><<a href="mailto:david.majnemer@gmail.com" target="_blank">david.majnemer@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>Does MSCOFF permit chains of associated sections? I can't remember if they do.</div></blockquote><div><br></div></span><div>IIRC that is not explicitly banned by the spec, but no one produces chained associated sections, and I can't imagine a valid of use it.</div><span><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><br><div class="gmail_quote"><div><div class="m_3860302982693391432m_1179315900529683729m_-9013346253921445550m_-4275900323947291522m_-2475297312777982099h5"><div>On Thu, Feb 16, 2017 at 6:35 PM Rui Ueyama via Phabricator via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>> wrote:<br></div></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="m_3860302982693391432m_1179315900529683729m_-9013346253921445550m_-4275900323947291522m_-2475297312777982099h5">ruiu created this revision.<br class="m_3860302982693391432m_1179315900529683729m_-9013346253921445550m_-4275900323947291522m_-2475297312777982099m_-7070339701042433777gmail_msg">
<br class="m_3860302982693391432m_1179315900529683729m_-9013346253921445550m_-4275900323947291522m_-2475297312777982099m_-7070339701042433777gmail_msg">
MSVC link.exe cannot handle associative sections that refer later<br class="m_3860302982693391432m_1179315900529683729m_-9013346253921445550m_-4275900323947291522m_-2475297312777982099m_-7070339701042433777gmail_msg">
sections in the section header. Technically, such COFF object doesn't<br class="m_3860302982693391432m_1179315900529683729m_-9013346253921445550m_-4275900323947291522m_-2475297312777982099m_-7070339701042433777gmail_msg">
violate the Microsoft COFF spec, as the spec doesn't say anything<br class="m_3860302982693391432m_1179315900529683729m_-9013346253921445550m_-4275900323947291522m_-2475297312777982099m_-7070339701042433777gmail_msg">
about that, but still we should avoid doing that to make it compatible<br class="m_3860302982693391432m_1179315900529683729m_-9013346253921445550m_-4275900323947291522m_-2475297312777982099m_-7070339701042433777gmail_msg">
with MS tools.<br class="m_3860302982693391432m_1179315900529683729m_-9013346253921445550m_-4275900323947291522m_-2475297312777982099m_-7070339701042433777gmail_msg">
<br class="m_3860302982693391432m_1179315900529683729m_-9013346253921445550m_-4275900323947291522m_-2475297312777982099m_-7070339701042433777gmail_msg">
This patch assigns smaller section numbers to non-associative sections<br class="m_3860302982693391432m_1179315900529683729m_-9013346253921445550m_-4275900323947291522m_-2475297312777982099m_-7070339701042433777gmail_msg">
and larger numbers to associative sections. This should resolve the<br class="m_3860302982693391432m_1179315900529683729m_-9013346253921445550m_-4275900323947291522m_-2475297312777982099m_-7070339701042433777gmail_msg">
compatibility issue.<br class="m_3860302982693391432m_1179315900529683729m_-9013346253921445550m_-4275900323947291522m_-2475297312777982099m_-7070339701042433777gmail_msg">
<br class="m_3860302982693391432m_1179315900529683729m_-9013346253921445550m_-4275900323947291522m_-2475297312777982099m_-7070339701042433777gmail_msg">
<br class="m_3860302982693391432m_1179315900529683729m_-9013346253921445550m_-4275900323947291522m_-2475297312777982099m_-7070339701042433777gmail_msg">
<a href="https://reviews.llvm.org/D30080" rel="noreferrer" class="m_3860302982693391432m_1179315900529683729m_-9013346253921445550m_-4275900323947291522m_-2475297312777982099m_-7070339701042433777gmail_msg" target="_blank">https://reviews.llvm.org/D3008<wbr>0</a><br class="m_3860302982693391432m_1179315900529683729m_-9013346253921445550m_-4275900323947291522m_-2475297312777982099m_-7070339701042433777gmail_msg">
<br class="m_3860302982693391432m_1179315900529683729m_-9013346253921445550m_-4275900323947291522m_-2475297312777982099m_-7070339701042433777gmail_msg">
Files:<br class="m_3860302982693391432m_1179315900529683729m_-9013346253921445550m_-4275900323947291522m_-2475297312777982099m_-7070339701042433777gmail_msg">
  llvm/lib/MC/WinCOFFObjectWrite<wbr>r.cpp<br class="m_3860302982693391432m_1179315900529683729m_-9013346253921445550m_-4275900323947291522m_-2475297312777982099m_-7070339701042433777gmail_msg">
  llvm/test/DebugInfo/COFF/globa<wbr>ls.ll<br class="m_3860302982693391432m_1179315900529683729m_-9013346253921445550m_-4275900323947291522m_-2475297312777982099m_-7070339701042433777gmail_msg">
  llvm/test/DebugInfo/COFF/types<wbr>-data-members.ll<br class="m_3860302982693391432m_1179315900529683729m_-9013346253921445550m_-4275900323947291522m_-2475297312777982099m_-7070339701042433777gmail_msg">
  llvm/test/MC/COFF/section-comd<wbr>at.s<br class="m_3860302982693391432m_1179315900529683729m_-9013346253921445550m_-4275900323947291522m_-2475297312777982099m_-7070339701042433777gmail_msg">
<br class="m_3860302982693391432m_1179315900529683729m_-9013346253921445550m_-4275900323947291522m_-2475297312777982099m_-7070339701042433777gmail_msg"></div></div>
______________________________<wbr>_________________<br class="m_3860302982693391432m_1179315900529683729m_-9013346253921445550m_-4275900323947291522m_-2475297312777982099m_-7070339701042433777gmail_msg">
llvm-commits mailing list<br class="m_3860302982693391432m_1179315900529683729m_-9013346253921445550m_-4275900323947291522m_-2475297312777982099m_-7070339701042433777gmail_msg">
<a href="mailto:llvm-commits@lists.llvm.org" class="m_3860302982693391432m_1179315900529683729m_-9013346253921445550m_-4275900323947291522m_-2475297312777982099m_-7070339701042433777gmail_msg" target="_blank">llvm-commits@lists.llvm.org</a><br class="m_3860302982693391432m_1179315900529683729m_-9013346253921445550m_-4275900323947291522m_-2475297312777982099m_-7070339701042433777gmail_msg">
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" class="m_3860302982693391432m_1179315900529683729m_-9013346253921445550m_-4275900323947291522m_-2475297312777982099m_-7070339701042433777gmail_msg" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br class="m_3860302982693391432m_1179315900529683729m_-9013346253921445550m_-4275900323947291522m_-2475297312777982099m_-7070339701042433777gmail_msg">
</blockquote></div></div>
</blockquote></span></div><br></div></div>
</blockquote></div><br></div></div></div></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div></div></div></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>