<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Fri, May 25, 2018 at 4:35 PM Hal Finkel via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div text="#000000" bgcolor="#FFFFFF">
    <p>On 05/25/2018 02:40 PM, Richard Smith
      wrote:<br></p>
    <blockquote type="cite">
      
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">On 25 May 2018 at 12:15, Hal Finkel
            via cfe-dev <span dir="ltr"><<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>></span>
            wrote:<br>
            <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
              <div bgcolor="#FFFFFF"><span class="m_3894284272572929825gmail-">
                  <p>Unfortunately, to define structure layouts they
                need to be constant.<br></p></span>
                <br>
                The best solution I've thought of is to extend the
                abi_tag support to force the mangling of interfaces
                depending on values of these constructs to be different.<br>
              </div>
            </blockquote>
            <div><br>
            </div>
            <div>abi_tag is not an effective way of maintaining ABI,
              because it needs to be "viral" / transitive, and can't be
              (at least, not without huge developer effort).</div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    Interesting. I had thought that abi_tag was transitive.<br>
    <br>
    It occurs to me that Transitive ABI Infection Mechanism (TAIM) has a
    reasonable acronym. :-) - I suspect that's what we need in this
    case.<br></div></blockquote><div><br></div><div>That was the original idea, but halfway through implementing it, they realized that forward declarations are a thing.</div><div><br></div><div>Thus it is unfortunately not possible to infer the ABI-name of a struct from its contents.</div></div></div>