<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in externc-ifunc-resolver.cpp</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>9ba8c402 - Fix behavior of ifuncs with &apos;used&apos; extern &quot;C&quot; static functions</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/test/SemaCXX/externc-ifunc-resolver.cpp#9ba8c402</link>
        <description>Fix behavior of ifuncs with &apos;used&apos; extern &quot;C&quot; static functionsWe expect that `extern &quot;C&quot;` static functions to be usable in things likeinline assembly, as well as ifuncs:See the bug report here: https://github.com/llvm/llvm-project/issues/54549However, we were diagnosing this as &apos;not defined&apos;, because theifunc&apos;s attempt to look up its resolver would generate a declared IRfunction.Additionally, as background, the way we allow these static extern &quot;C&quot;functions to work in inline assembly is by making an alias with the Cmangling in MOST situations to the version we emit withinternal-linkage/mangling.The problem here was multi-fold: First- We generated the alias after theifunc was checked, so the function by that name didn&apos;t exist yet.Second, the ifunc&apos;s generation caused a symbol to exist under the nameof the alias already (the declared function above), which suppressed thealias generation.This patch fixes all of this by moving the checking of ifuncs/CFE aliasesuntil AFTER we have generated the extern-C alias.  Then, it does a&apos;fixup&apos; around the GlobalIFunc to make sure we correct the reference.Differential Revision: https://reviews.llvm.org/D122608

            List of files:
            /llvm-project-15.0.7/clang/test/SemaCXX/externc-ifunc-resolver.cpp</description>
        <pubDate>Mon, 28 Mar 2022 15:57:50 +0000</pubDate>
        <dc:creator>Erich Keane &lt;erich.keane@intel.com&gt;</dc:creator>
    </item>
</channel>
</rss>
