[clang] [clang] print correct context for diagnostics suppressed by deduction (PR #125453)

Matheus Izvekov via cfe-commits cfe-commits at lists.llvm.org
Mon Feb 3 16:09:06 PST 2025


================
@@ -1909,7 +1909,19 @@ class Sema final : public SemaBase {
   /// '\#pragma clang attribute push' directives to the given declaration.
   void AddPragmaAttributes(Scope *S, Decl *D);
 
-  void PrintPragmaAttributeInstantiationPoint();
+  using DiagFuncRef =
+      llvm::function_ref<void(SourceLocation, PartialDiagnostic)>;
+  auto getDefaultDiagFunc() {
+    return [this](SourceLocation Loc, PartialDiagnostic PD) {
+      DiagnosticBuilder Builder(Diags.Report(Loc, PD.getDiagID()));
+      PD.Emit(Builder);
+    };
+  }
----------------
mizvekov wrote:

I thought about / tried that first, but assuming multiple users, I think there is less duplication this way, and the duplication is more obvious.
There are some other functions that can start taking this parameter in future patches.

https://github.com/llvm/llvm-project/pull/125453


More information about the cfe-commits mailing list