https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109585
--- Comment #10 from Andrew Pinski <pinskia at gcc dot gnu.org> --- If I change zix_btree_iter_is_end to: ZIX_API bool zix_btree_iter_is_end(const struct ZixBTreeIterImpl* const i) { if (!i) return 1; if (i->stack[0].node == NULL) return 1; return 0; } Then both the C and C++ front-end generated IR causes the segfault.