https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70617
--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> --- (In reply to Richard Biener from comment #9) > Ok, so > > page_table table = G.lookup; > uintptr_t high_bits = (uintptr_t) p & ~ (uintptr_t) 0xffffffff; > while (table->high_bits != high_bits) > table = table->next; > base = &table->table[0]; > > here we assume we never get a non-GC pointer passed to > lookup_page_table_entry > (which is a valid assumption). What's p's value here? I think that is valid assumption, so if we refer to non-GC memory from GC memory without skip, that is where the bug is.