<?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 backend-attribute-error-warning-optimize.c</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>aa53785f - Reland [clang] Rework dontcall attributes</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/test/Frontend/backend-attribute-error-warning-optimize.c#aa53785f</link>
        <description>Reland [clang] Rework dontcall attributesTo avoid using the AST when emitting diagnostics, split the &quot;dontcall&quot;attribute into &quot;dontcall-warn&quot; and &quot;dontcall-error&quot;, and also add thefrontend attribute value as the LLVM attribute value. This gives us allthe information to report diagnostics we need from within the IR (asidefrom access to the original source).One downside is we directly use LLVM&apos;s demangler rather than using theexisting Clang diagnostic pretty printing of symbols.Previous revisions didn&apos;t properly declare the new dependencies.Reviewed By: nickdesaulniersDifferential Revision: https://reviews.llvm.org/D110364

            List of files:
            /llvm-project-15.0.7/clang/test/Frontend/backend-attribute-error-warning-optimize.c</description>
        <pubDate>Thu, 23 Sep 2021 20:54:24 +0000</pubDate>
        <dc:creator>Arthur Eubanks &lt;aeubanks@google.com&gt;</dc:creator>
    </item>
<item>
        <title>7833d20f - Revert &quot;[clang] Rework dontcall attributes&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/test/Frontend/backend-attribute-error-warning-optimize.c#7833d20f</link>
        <description>Revert &quot;[clang] Rework dontcall attributes&quot;This reverts commit 2943071e2ee0c7f31f34062a44d12aeb0e3a66fd.Breaks bots

            List of files:
            /llvm-project-15.0.7/clang/test/Frontend/backend-attribute-error-warning-optimize.c</description>
        <pubDate>Tue, 28 Sep 2021 21:49:27 +0000</pubDate>
        <dc:creator>Arthur Eubanks &lt;aeubanks@google.com&gt;</dc:creator>
    </item>
<item>
        <title>2943071e - [clang] Rework dontcall attributes</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/test/Frontend/backend-attribute-error-warning-optimize.c#2943071e</link>
        <description>[clang] Rework dontcall attributesTo avoid using the AST when emitting diagnostics, split the &quot;dontcall&quot;attribute into &quot;dontcall-warn&quot; and &quot;dontcall-error&quot;, and also add thefrontend attribute value as the LLVM attribute value. This gives us allthe information to report diagnostics we need from within the IR (asidefrom access to the original source).One downside is we directly use LLVM&apos;s demangler rather than using theexisting Clang diagnostic pretty printing of symbols.Reviewed By: nickdesaulniersDifferential Revision: https://reviews.llvm.org/D110364

            List of files:
            /llvm-project-15.0.7/clang/test/Frontend/backend-attribute-error-warning-optimize.c</description>
        <pubDate>Thu, 23 Sep 2021 20:54:24 +0000</pubDate>
        <dc:creator>Arthur Eubanks &lt;aeubanks@google.com&gt;</dc:creator>
    </item>
<item>
        <title>846e562d - [Clang] add support for error+warning fn attrs</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/test/Frontend/backend-attribute-error-warning-optimize.c#846e562d</link>
        <description>[Clang] add support for error+warning fn attrsAdd support for the GNU C style __attribute__((error(&quot;&quot;))) and__attribute__((warning(&quot;&quot;))). These attributes are meant to be put ondeclarations of functions whom should not be called.They are frequently used to provide compile time diagnostics similar to_Static_assert, but which may rely on non-ICE conditions (ie. relying oncompiler optimizations). This is also similar to diagnose_if functionattribute, but can diagnose after optimizations have been run.While users may instead simply call undefined functions in such cases toget a linkage failure from the linker, these provide a much moreergonomic and actionable diagnostic to users and do so at compile timerather than at link time. Users instead may be able use inline asm .errdirectives.These are used throughout the Linux kernel in its implementation ofBUILD_BUG and BUILD_BUG_ON macros. These macros generally cannot beconverted to use _Static_assert because many of the parameters are notICEs. The Linux kernel still needs to be modified to make use of thesewhen building with Clang; I have a patch that does so I will send oncethis feature is landed.To do so, we create a new IR level Function attribute, &quot;dontcall&quot; (botherror and warning boil down to one IR Fn Attr).  Then, similar to callsto inline asm, we attach a !srcloc Metadata node to call sites of suchattributed callees.The backend diagnoses these during instruction selection, while we stillknow that a call is a call (vs say a JMP that&apos;s a tail call) in an archagnostic manner.The frontend then reconstructs the SourceLocation from that Metadata,and determines whether to emit an error or warning based on the callee&apos;sattribute.Link: https://bugs.llvm.org/show_bug.cgi?id=16428Link: https://github.com/ClangBuiltLinux/linux/issues/1173Reviewed By: aaron.ballmanDifferential Revision: https://reviews.llvm.org/D106030

            List of files:
            /llvm-project-15.0.7/clang/test/Frontend/backend-attribute-error-warning-optimize.c</description>
        <pubDate>Wed, 25 Aug 2021 17:18:13 +0000</pubDate>
        <dc:creator>Nick Desaulniers &lt;ndesaulniers@google.com&gt;</dc:creator>
    </item>
</channel>
</rss>
