<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 05/25/2018 03:50 PM, James Y Knight
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAA2zVHqWF0xnokw5FOk49XJuDU6RW+EZ8aQPcn0=LERJ+yB54Q@mail.gmail.com">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <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"
              moz-do-not-send="true">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" moz-do-not-send="true">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>
    </blockquote>
    <br>
    Oh. Right. ;)<br>
    <br>
     -Hal<br>
    <br>
    <pre class="moz-signature" cols="72">-- 
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory</pre>
  </body>
</html>