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

            Bug ID: 81185
           Summary: Target clones support generates awkward names
           Product: gcc
           Version: 8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: ipa
          Assignee: unassigned at gcc dot gnu.org
          Reporter: meissner at gcc dot gnu.org
                CC: marxin at gcc dot gnu.org
  Target Milestone: ---

The June 19th, 2017 change from Martin Liska  <mli...@suse.cz>, made the
target_clones support more usable, in that it it changed the external name from
being the default function to being the ifunc handler.  This means that calls
from other modules will call the appropriate clone based on what machine it is
running on.

The name generated for each of the clone functions for non-default
architectures has the string ".default.<number>" added to it, while it already
has the various names for the different architectures.

I tracked this down to create_dispatcher_calls getting called for each of the
clone functions, since they have the DECL_FUNCTION_VERISIONED bit set.

We can fix this by either checking whether the function is the default
function, or by having the x86_64 and PowerPC not set DECL_FUNCTION_VERSIONED
for the clone functions.

Reply via email to