<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Jun 12, 2014 at 2:18 PM, Nico Weber <span dir="ltr"><<a href="mailto:thakis@chromium.org" target="_blank">thakis@chromium.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">
<div class="">On Thu, Jun 12, 2014 at 12:49 PM, Reid Kleckner <span dir="ltr"><<a href="mailto:reid@kleckner.net" target="_blank">reid@kleckner.net</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Author: rnk<br>
Date: Thu Jun 12 14:49:17 2014<br>
New Revision: 210813<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=210813&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=210813&view=rev</a><br>
Log:<br>
MS ABI: Fix forming pointers to members of a base class<br>
<br>
Previously we would calculate the inheritance model of a class when<br>
requiring a pointer to member type of that class to be complete.  The<br>
inheritance model is used to figure out how many fields are used by the<br>
member pointer.<br>
<br>
However, once we require a pointer to member of a derived class type to<br>
be complete, we can form pointers to members of bases without<br>
calculating the inheritance model for those bases.  This was causing<br>
crashes on this simple test case:<br>
<br>
  struct A {<br>
    void f();<br>
    void f(int);<br>
  };<br>
  struct B : public A {};<br>
  void g() { void (B::*a)() = &B::f; }<br>
<br>
Now we calculate the inheritance models of all base classes when<br>
completing a member pointer type.<br>
<br>
Fixes PR2007.<br></blockquote><div><br></div></div><div>PR20007 (one more 0), right? (Also in the test)</div></div></div></div></blockquote><div><br></div><div>Woops, thanks!  r210834</div></div></div></div>