https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109712
--- Comment #25 from Carlos Galvez <carlosgalvezp at gmail dot com> --- Perhaps this is a stupid comment, but isn't "ob.s.b.encoding" uninitialized? /* inside find_fde_tail */ struct object ob; ... ob.pc_begin = NULL; ob.tbase = NULL; ob.dbase = (void *) dbase; ob.u.single = (fde *) eh_frame; ob.s.i = 0; ob.s.b.mixed_encoding = 1; /* Need to assume worst case. */ const fde *entry = linear_search_fdes (&ob, (fde *) eh_frame, (void *) pc); Above, only "ob.s.b.mixed_encoding" is set, not "ob.s.b.encoding". After that, "linear_search_fdes" expects that it's set: static const fde * linear_search_fdes (struct object *ob, const fde *this_fde, void *pc) { const struct dwarf_cie *last_cie = 0; int encoding = ob->s.b.encoding; _Unwind_Ptr base = base_from_object (ob->s.b.encoding, ob);