<div dir="rtl"><div dir="ltr">Committed revision 258524.<br></div><div dir="ltr"><br></div></div><div class="gmail_extra"><br><div class="gmail_quote"><div dir="ltr">2016-01-21 19:33 GMT+02:00 Vassil Vassilev via cfe-commits <span dir="ltr"><<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a>></span>:</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    <div>ping... (perhaps someone else with
      commit rights can check it it...)<span class="HOEnZb"><font color="#888888"><br>
      --Vassil</font></span><div><div class="h5"><br>
      On 18/01/16 22:07, Vassil Vassilev wrote:<br>
    </div></div></div><div><div class="h5">
    <blockquote type="cite">
      
      <div>Thanks! Could you check it in?<br>
        -- Vassil<br>
        On 18/01/16 21:38, Richard Smith via cfe-commits wrote:<br>
      </div>
      <blockquote type="cite">
        <p dir="ltr">LGTM</p>
        <div class="gmail_quote">On Jan 18, 2016 12:06 PM, "Vassil
          Vassilev" <<a href="mailto:vvasilev@cern.ch" target="_blank">vvasilev@cern.ch</a>>
          wrote:<br type="attribution">
          <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
            <div bgcolor="#FFFFFF" text="#000000">
              <div>Attaching v3 of the patch. Added your case to the
                current test and fixed my silly non-array mistake.<br>
                -- Vassil<br>
                On 18/01/16 20:38, Richard Smith wrote:<br>
              </div>
              <blockquote type="cite">
                <p dir="ltr">Please also add a test case that your old
                  patch would have failed on, such as:</p>
                <p dir="ltr">m1.h:<br>
                  extern int a[];</p>
                <p dir="ltr">m2.h:<br>
                  extern int a[5];</p>
                <p dir="ltr">x.cc:<br>
                  #include "m1.h"<br>
                  #include "m2.h"<br>
                  int *p = a;</p>
                <div class="gmail_quote">On Jan 18, 2016 9:28 AM,
                  "Vassil Vassilev" <<a href="mailto:vvasilev@cern.ch" target="_blank">vvasilev@cern.ch</a>>

                  wrote:<br type="attribution">
                  <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On
                    17/01/16 06:34, Douglas Gregor wrote:<br>
                    <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                      <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> On Jan 16, 2016, at
                        3:41 PM, Vassil Vassilev <<a href="mailto:vvasilev@cern.ch" target="_blank"></a><a href="mailto:vvasilev@cern.ch" target="_blank">vvasilev@cern.ch</a>>

                        wrote:<br>
                        <br>
                        Hi,<br>
                          Could somebody review the attached patch. It
                        fixes <a href="https://llvm.org/bugs/show_bug.cgi?id=26179" target="_blank">https://llvm.org/bugs/show_bug.cgi?id=26179</a><br>
                        Many thanks!<br>
                        Vassil<br>
<0001-modules-Teach-clang-to-how-to-merge-variable-redecls.patch><br>
                      </blockquote>
                      <br>
                      +      // We can get decls with different types on
                      the redecl chain. Eg.<br>
                      +      // template <typename T> struct S {
                      static T Var[]; }; // #1<br>
                      +      // template <typename T> T
                      S<T>::Var[sizeof(T)]; // #2<br>
                      +      // Trying to compare #1 and #2 should go
                      through their canonical decls.<br>
                      +      QualType VarXTy =
                      VarX->getCanonicalDecl()->getType();<br>
                      +      QualType VarYTy =
                      VarY->getCanonicalDecl()->getType();<br>
                      +      if (Context.hasSameType(VarXTy, VarYTy))<br>
                      +        return true;<br>
                      <br>
                      Completing an incomplete array is (I think) the
                      only case in which this can happen. How about
                      checking for that case specifically (i.e., it’s
                      okay to have one be an incomplete array and the
                      other to be any other kind of array with the same
                      element type), rather than a blanket check on the
                      canonical declaration types?<br>
                      <br>
                              - Doug<br>
                      <br>
                    </blockquote>
                    Thanks for the comments. Patch v2 attached.<br>
                    -- Vassil<br>
                  </blockquote>
                </div>
              </blockquote>
              <br>
            </div>
          </blockquote>
        </div>
        <br>
        <fieldset></fieldset>
        <br>
        <pre>_______________________________________________
cfe-commits mailing list
<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a>
</pre>
      </blockquote>
      <br>
    </blockquote>
    <br>
  </div></div></div>

<br>_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br>
<br></blockquote></div><br></div>