https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87252
--- Comment #5 from David Malcolm <dmalcolm at gcc dot gnu.org> --- Possibly due to lifetime issues: perhaps the on-stack text_range_label's dtor is being called (and thus trashing updating the vtable ptr) before the object gets used. (see e.g. https://tombarta.wordpress.com/2008/07/10/gcc-pure-virtual-method-called/ and https://www.artima.com/cppsource/pure_virtual.html )