From: Martin Liska Date: Thu, 4 Jul 2019 09:03:40 +0000 (+0200) Subject: Backport r272992 X-Git-Tag: releases/gcc-9.2.0~171 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f62121b1cae10375be19ffd7c9386364cd3756f4;p=thirdparty%2Fgcc.git Backport r272992 2019-07-04 Martin Liska Backport from mainline 2019-07-03 Martin Liska PR middle-end/90899 * multiple_target.c (create_dispatcher_calls): Add to comdat group only if set for ifunc. 2019-07-04 Martin Liska Backport from mainline 2019-07-03 Martin Liska PR middle-end/90899 * gcc.target/i386/pr90899.c: New test. From-SVN: r273073 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 31e404983f34..ae633153aa8f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2019-07-04 Martin Liska + + Backport from mainline + 2019-07-03 Martin Liska + + PR middle-end/90899 + * multiple_target.c (create_dispatcher_calls): Add to comdat + group only if set for ifunc. + 2019-07-03 Eric Botcazou * dwarf2out.c (add_scalar_info): Add back refererence to existing DIE diff --git a/gcc/multiple_target.c b/gcc/multiple_target.c index 0a87241b2519..e93c60e7adb3 100644 --- a/gcc/multiple_target.c +++ b/gcc/multiple_target.c @@ -158,7 +158,8 @@ create_dispatcher_calls (struct cgraph_node *node) { symtab_node *source = ref->referring; source->create_reference (inode, IPA_REF_ALIAS); - source->add_to_same_comdat_group (inode); + if (inode->get_comdat_group ()) + source->add_to_same_comdat_group (inode); } else gcc_unreachable (); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c7a98744d39f..2a42f3c15b06 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2019-07-04 Martin Liska + + Backport from mainline + 2019-07-03 Martin Liska + + PR middle-end/90899 + * gcc.target/i386/pr90899.c: New test. + 2019-07-04 Chenghua Xu * gcc.target/mips/mips-fmadd.c: Rename to ... diff --git a/gcc/testsuite/gcc.target/i386/pr90899.c b/gcc/testsuite/gcc.target/i386/pr90899.c new file mode 100644 index 000000000000..e0e2d5ac6bb1 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr90899.c @@ -0,0 +1,6 @@ +/* PR middle-end/90899 */ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ + +__attribute__ ((target_clones ("default", "arch=slm"))) static int f () { return 0; } +__attribute__ ((alias ("f"))) __typeof (f) g;