https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95315
--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Jakub Jelinek <ja...@gcc.gnu.org>: https://gcc.gnu.org/g:baff22c48bdee9cb644b7336bf6f20f799531507 commit r11-653-gbaff22c48bdee9cb644b7336bf6f20f799531507 Author: Jakub Jelinek <ja...@redhat.com> Date: Wed May 27 10:25:56 2020 +0200 openmp: Fix up omp_declare_variant{s,_alt} htab handling This patch fixes a GC ICE. During debugging, I've found that during gimplification we can actually call omp_resolve_declare_variant multiple times and it would create a new magic declare_variant_alt FUNCTION_DECL each time, which is undesirable, once we have such a decl, we should just use that. The other problem is that there was no cgraph node removal hook. As the omp_declare_variants htab is used just early during gimplification, we can just clear the whole htab, rather than trying to lookup and remove a particular entry. The other hash table is used later as well and that one uses just DECL_UID as hash, so in that case the patch removes the elt. 2020-05-27 Jakub Jelinek <ja...@redhat.com> PR middle-end/95315 * omp-general.c (omp_declare_variant_remove_hook): New function. (omp_resolve_declare_variant): Always return base if it is already declare_variant_alt magic decl itself. Register omp_declare_variant_remove_hook as cgraph node removal hook. * gcc.dg/gomp/pr95315.c: New test.