[Bug c/82323] New: circular ifunc attribute on a function definition silently accepted

msebor at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Sep 25 16:38:00 GMT 2017


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82323

            Bug ID: 82323
           Summary: circular ifunc attribute on a function definition
                    silently accepted
           Product: gcc
           Version: 8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: msebor at gcc dot gnu.org
  Target Milestone: ---

While testing the implementation of the fix for bug 82301 (and bug 81854) I
noticed that the ifunc attribute is silently accepted on the definition of a
function, like below:

$ cat t.c && gcc -S -Wall -Wextra -Werror t.c
int __attribute__ ((ifunc ("foo")))
foo (void) { return 0; }

The attribute specification on this function is invalid because a) it specifies
the indirect function itself as its own resolver, and b) it specifies a
resolver that doesn't return the expected type (a pointer to the indirect
function).

It seems to me that the ifunc attribute should be rejected with an error on
definitions of functions.


More information about the Gcc-bugs mailing list