<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/79977>79977</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Omit "expanded from macro" notes for well-known macros (e.g. `assert()`)
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang:diagnostics
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          tbaederr
      </td>
    </tr>
</table>

<pre>
    Consider this output:

```console
./array.cpp:1641:11: error: expression is not assignable
 1641 |   assert(1++);
      | ~^
/usr/include/assert.h:100:27: note: expanded from macro 'assert'
 100 |      (static_cast <bool> (expr) \
      |                           ^~~~
1 error generated.
```

I do not believe the "expanded from macro 'assert'" note ever adds any useful information. It might make sense to simply omit the "expanded from macro" note in this case.



Quick hack to make this work:
```diff
diff --git a/clang/lib/Frontend/DiagnosticRenderer.cpp b/clang/lib/Frontend/DiagnosticRenderer.cpp
index 18c8be7a7293..d8e86bd11a1f 100644
--- a/clang/lib/Frontend/DiagnosticRenderer.cpp
+++ b/clang/lib/Frontend/DiagnosticRenderer.cpp
@@ -446,6 +446,11 @@ void DiagnosticRenderer::emitSingleMacroExpansion(
   llvm::raw_svector_ostream Message(MessageStorage);
   StringRef MacroName = Lexer::getImmediateMacroNameForDiagnostics(
       Loc, Loc.getManager(), LangOpts);
+
+  if (MacroName == "assert" &&
+ SpellingLoc.getManager().getFilename(SpellingLoc) == "/usr/include/assert.h")
+    return;
+
   if (MacroName.empty())
     Message << "expanded from here";
 else
```

Resulting in:
```console
./array.cpp:1641:11: error: expression is not assignable
 1641 |   assert(1++);
      | ~^
1 error generated.
```
(unsurprisingly).



If we can agree that this is an improvement, I can provide a patch.

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMVt9uozgXfxrn5ijImATCRS7atEiVZr7RN32AkcEH4q2xkW3S5qbPvjqQpOl0p7s7V4sQtuzjc37n38_IEHRnEbdsfcvWdws5xr3z21hLVOj9onbquN05G7RCD3GvA7gxDmNk2Q3jd4yfvzmf38bZ4AzOqwkTlfReHpNmGFh2k-arlAb6AHrv_DR5GTyGoJ0FHcC6CDMqWZ_1AB0EVuwAaA99ZGKTMnE7vSXLbk9y00Nyr2x9f0ImqjF4JiptGzMqJEiTimRPUDhn2Y0oCId1EU94pFWooPWuh1423gETxdlwccbE-QkS2RSbEGXUzY9Ghggs29XOGZbd0w45yEQJbL37GeevH7a-f319neXTOVjQoUUvI6rkp6hfp-IBlJuiWKPReECIewQmxN-6JcQUAsADepBKBZD2CGPAdjSgbet8L6N2NoGHCL3u9hF6-YQQ0AaE6CDofjBHcL2Onxi92NF2LqhGBkzeFdPV9_-jbp5gL5snsjDZmw49O__0VoPnOCjdtvMSzWC57HQEyUTVGGk7Jiqjayaqyjsb0SomqjstO-tC1M13tAo9eqpVqP_9mdmutgpfIN00mxoLWYgySxK1wU1eqzSVaUtlk69Ws_ByufwddOfCnsv_9vfBshVnKw7L1SpnYpcDE7fzNE3htHdwWsFHHRT67AZ7HR-17Qx-pczeU7Kpj5nYXArdmEM_S3v5_CMcsInO_3AhepQ9fMUQZIdMbE6zx-j8tPCuqx-j17b7ji1Mhv4newSW3cEXfDlj6TA-9D0qLSNehCrn37CHa1j0fHENEzsakg7jV2llh56ERDmtS9t9G2K4xkIRP08AdEvt_Q4SoWJCnLtKABM5vZdDjwMao233V1ZpodIGrewpJFeiE31ctH_GabRbXmEE8BhHbz-6AB8cSLAf4vEcgfIqWKfsELGxbPexs_fokUxfcoYm4Cck9R3DaKK2HWj7sY3_c5fIPyVgsRltGP3gdaC2OFJOf8VsDy08IzTSguw8Eq3JOHObJuYF3Q_eHbBHG6kaHyZRWtIKQcIgY7M_KV-obabKrJQL3KYFz_M05Su-2G-bWqVtKfk6XyNvU16ka55io2S7Wa9rrBd6K7hY8TTjKc8KwZOizPIUs6wRiJJvGrbi2EttEurjxPluoUMYcVuUZVEsjKzRhOnnQYiZgrIbdd1xgv4q_JZOL-uxC2zFjQ4xvOmLOhrcfqNL4_MLI0DrPDyjMcsn657tvBumGzbpEmA5v-SVEppzJsrF6M12H-MQqMxExUTV6bgf66RxPfEl0dM8LAfv_sAmUl-Rj4GJanLzzwAAAP__uPi6mw">