<br><br><div class="gmail_quote">On Mon, Sep 13, 2010 at 5:17 AM, Duncan Sands <span dir="ltr"><<a href="mailto:baldrick@free.fr" target="_blank">baldrick@free.fr</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi Ben,<br>
<div><div></div><div><br>
> I updated my from LLVM 2.7 to 2.8/trunk tonight and was mystified as to why my<br>
> GC plugin silently stopped working.<br>
><br>
> The problem was that the signature of the virtual function<br>
> GCMetadataPrinter::finishAssembly (and beginAssembly) changed.<br>
><br>
> This change would probably be an excellent candidate for the "gotchas" section<br>
> of the 2.8 release notes.<br>
<br>
</div></div>can you please send some text appropriate for the release notes that explains<br>
the problem.<br>
<br>
Thanks a lot,<br>
<br>
Duncan.</blockquote><div><br></div><div>I must admit this is a problem that -Woverloaded-virtual would have caught. I ended up compiling my plugin statically without that flag, because my project is mixed C and C++, and -Woverloaded-virtual can't be used with C. I think it still might be worthwhile to include a brief note documenting the change.</div>
<div><br></div><div>Anyways, how's this for a reasonably short blurb:</div><div><br></div><div><br></div><div><br></div><div>The signature of the GCMetadataPrinter::finishAssembly virtual function changed: the raw_ostream and MCAsmInfo arguments were dropped. GC plugins which compute stack maps must be updated to avoid having the old definition overload the new signature.</div>
<div><br></div><div><br></div><div><br></div><div>Cheers,</div><div>-- Ben</div></div>