[Bug ipa/84833] [8 Regression] target_clones regression since r251047
jakub at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Mar 13 08:01:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84833
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Just a note, as can be seen e.g. on
static volatile int a;
static int my_foo1 (void) { return 1; }
static int my_foo2 (void) { return 2; }
typedef int (*F) (void);
static F resolve_foo (void) { if (a) return my_foo1; else return my_foo2; }
static int foo (void) __attribute__ ((ifunc ("resolve_foo")));
int
main ()
{
if (foo () != 2)
__builtin_abort ();
}
there is no reason why any of the target clones, resolver or the ifunc function
should be .globl, they can all be local to the TU, IFUNC work just fine that
way too. So, if the function with target_clones attribute is not TREE_PUBLIC,
neither should be any of the multiple_targets.c created symbols.
More information about the Gcc-bugs
mailing list