Ben Karel
2010-Sep-12 02:15 UTC
[LLVMdev] Subtle breaking change in LLVM 2.7 to 2.8 transition
I updated my from LLVM 2.7 to 2.8/trunk tonight and was mystified as to why my GC plugin silently stopped working. The problem was that the signature of the virtual function GCMetadataPrinter::finishAssembly (and beginAssembly) changed. This change would probably be an excellent candidate for the "gotchas" section of the 2.8 release notes. Thanks! -- Ben -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100911/70559a74/attachment.html>
Duncan Sands
2010-Sep-13 09:17 UTC
[LLVMdev] Subtle breaking change in LLVM 2.7 to 2.8 transition
Hi Ben,> I updated my from LLVM 2.7 to 2.8/trunk tonight and was mystified as to why my > GC plugin silently stopped working. > > The problem was that the signature of the virtual function > GCMetadataPrinter::finishAssembly (and beginAssembly) changed. > > This change would probably be an excellent candidate for the "gotchas" section > of the 2.8 release notes.can you please send some text appropriate for the release notes that explains the problem. Thanks a lot, Duncan.
Ben Karel
2010-Sep-26 07:26 UTC
[LLVMdev] Subtle breaking change in LLVM 2.7 to 2.8 transition
On Mon, Sep 13, 2010 at 5:17 AM, Duncan Sands <baldrick at free.fr> wrote:> Hi Ben, > > > I updated my from LLVM 2.7 to 2.8/trunk tonight and was mystified as to > why my > > GC plugin silently stopped working. > > > > The problem was that the signature of the virtual function > > GCMetadataPrinter::finishAssembly (and beginAssembly) changed. > > > > This change would probably be an excellent candidate for the "gotchas" > section > > of the 2.8 release notes. > > can you please send some text appropriate for the release notes that > explains > the problem. > > Thanks a lot, > > Duncan.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. Anyways, how's this for a reasonably short blurb: 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. Cheers, -- Ben -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100926/fe4ebeda/attachment.html>
Apparently Analagous Threads
- [LLVMdev] Subtle breaking change in LLVM 2.7 to 2.8 transition
- [LLVMdev] Subtle breaking change in LLVM 2.7 to 2.8 transition
- [LLVMdev] GCMetadataPrinter::finishAssembly not executed?
- [LLVMdev] GCMetadataPrinter::finishAssembly not executed?
- [LLVMdev] GCMetadataPrinter::finishAssembly not executed?