Fix Target Multiversioning renaming.
authorErich Keane <erich.keane@intel.com>
Mon, 9 Mar 2020 15:06:58 +0000 (08:06 -0700)
committerErich Keane <erich.keane@intel.com>
Mon, 9 Mar 2020 15:29:18 +0000 (08:29 -0700)
commit7b661608287e84d6bec24262a0a42c1d8b65fcc6
tree96555c14d622b00067f82603193e82d76beda7f8
parent2fed3ca3b5c5e02b79811de2866a4f6cae443684
Fix Target Multiversioning renaming.

The initial implementation only did 'first declaration renaming' when
a default version came after. This is insufficient in cases where a
default does not exist, so this patch makes sure that we do the renaming
in all cases.

This renaming is necessary because we emit the first declaration before
knowing that it IS a target multiversion function, which would change
its name. The second declaration (the one that caused the
multiversioning) then needs to make sure that the first one has its name
changed to be consistent with the resolver usage.
clang/lib/CodeGen/CodeGenModule.cpp
clang/test/CodeGen/attr-target-mv.c