[clang] [clang-tools-extra] [llvm] [clang] Introduce diagnostics suppression mappings (PR #112517)
Boaz Brickner via cfe-commits
cfe-commits at lists.llvm.org
Wed Oct 30 07:54:00 PDT 2024
================
@@ -946,6 +953,27 @@ class DiagnosticsEngine : public RefCountedBase<DiagnosticsEngine> {
return (Level)Diags->getDiagnosticLevel(DiagID, Loc, *this);
}
+ /// Diagnostic suppression mappings can be used to suppress specific
+ /// diagnostics in specific files.
+ /// Mapping file is expected to be a special case list with sections denoting
+ /// diagnostic groups and `src` entries for globs to suppress. `emit` category
+ /// can be used to disable suppression. Longest glob that matches a filepath
+ /// takes precendence. For example:
+ /// [unused]
+ /// src:clang/*
+ /// src:clang/foo/*=emit
+ /// src:clang/foo/bar/*
+ ///
+ /// Such a mappings file suppress all diagnostics produced by -Wunused in all
+ /// sources under `clang/` directory apart from `clang/foo/`. Diagnostics
+ /// under `clang/foo/bar/` will also be suppressed. Note that the FilePath is
+ /// matched against the globs as-is.
+ /// These take presumed locations into account, and can still be overriden by
+ /// clang-diagnostics pragmas.
+ void setDiagSuppressionMapping(llvm::MemoryBuffer &MB);
----------------
bricknerb wrote:
Replace MB with what this buffer should contain.
Other places use "File", "Input", "InputBuffer", "Buffer" etc, which are all more readable than the type acronym.
https://github.com/llvm/llvm-project/pull/112517
More information about the cfe-commits
mailing list