Hello! Lilypond 2.14.2 and the current revision from stable/2.14 crash on this file:
\version "2.14.2" \score { \new PianoStaff << \new Staff = "right" { \change Staff="left" } \new Staff = "left" { s1 } >> \layout { } } Bisection finds that the regression was introduced on the stable branch (!!!) by this commit: 6f6369c0e143402296e51708fddb8e3cc875dd09 is the first bad commit commit 6f6369c0e143402296e51708fddb8e3cc875dd09 Author: Joe Neeman <joenee...@gmail.com> Date: Fri May 27 18:57:16 2011 +0300 Emit not-quite-cross-staff beams in the right context. This is related to 1043 and possibly other bugs. Previously, if a staff change happened immediately after the termination of an auto-engraved cross-staff beam, then the beam was parented to the wrong staff. Now, every beam is parented to the context in which it began. :040000 040000 9fb6f0e342f2e64ca9b56c2d6e0d02556895e983 f248a9e0cc58847fddc0ad98e7eb839b8d3dbc60 M lily And that's what gdb shows for the current stable/2.14: GNU LilyPond 2.14.2 Processing `bad.ly' Parsing... Interpreting music... Program received signal SIGSEGV, Segmentation fault. __cxxabiv1::__dynamic_cast (src_ptr=0x7fffffffffff, src_type=0xae1870, dst_type=0xad9ea0, src2dst=-1) at ../../../../libstdc++-v3/libsupc++/dyncast.cc:51 51 const void *vtable = *static_cast <const void *const *> (src_ptr); (gdb) up #1 0x000000000054cef4 in Engraver_group::announce_grob (this=0xc8c840, info=...) at engraver-group.cc:83 83 : 0; (gdb) l 78 } 79 80 Engraver_group *dad_eng 81 = dad_con 82 ? dynamic_cast<Engraver_group *> (dad_con->implementation ()) 83 : 0; 84 85 if (dad_eng) 86 dad_eng->announce_grob (info); 87 } (gdb) dad_con was introduced by the commit in question. It looks like dad_con->implementation is of a wrong type. I hope it should be easy to fix for somebody who knows C++. -- Regards, Pavel Roskin _______________________________________________ bug-lilypond mailing list bug-lilypond@gnu.org https://lists.gnu.org/mailman/listinfo/bug-lilypond