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.

Reply via email to