[clang-tools-extra] [clang-tidy] New option to remove arguments from the command line (PR #164344)

via cfe-commits cfe-commits at lists.llvm.org
Sat Dec 6 08:27:56 PST 2025


github-actions[bot] wrote:

<!--PREMERGE ADVISOR COMMENT: Linux-->
# :penguin: Linux x64 Test Results

* 3054 tests passed
* 7 tests skipped
* 1 test failed

## Failed Tests
(click on a test name to see its output)

### Clang Tools
<details>
<summary>Clang Tools.clang-tidy/infrastructure/removed-args.cpp</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
not clang-tidy /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/test/clang-tidy/infrastructure/removed-args.cpp -- -fnot-an-option | FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/test/clang-tidy/infrastructure/removed-args.cpp -check-prefix=INVALID-A
# executed command: not clang-tidy /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/test/clang-tidy/infrastructure/removed-args.cpp -- -fnot-an-option
# .---command stderr------------
# | 1 error generated.
# | Error while processing /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/test/clang-tidy/infrastructure/removed-args.cpp.
# | Found compiler error(s).
# `-----------------------------
# executed command: FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/test/clang-tidy/infrastructure/removed-args.cpp -check-prefix=INVALID-A
# note: command had no output on stdout or stderr
# RUN: at line 2
clang-tidy /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/test/clang-tidy/infrastructure/removed-args.cpp --config="{RemovedArgs: ['-fnot-an-option']}" -- -fnot-an-option
# executed command: clang-tidy /home/gha/actions-runner/_work/llvm-project/llvm-project/clang-tools-extra/test/clang-tidy/infrastructure/removed-args.cpp '--config={RemovedArgs: ['"'"'-fnot-an-option'"'"']}' -- -fnot-an-option
# .---command stdout------------
# | USAGE: clang-tidy [options] <source0> [... <sourceN>]
# | 
# | OPTIONS:
# | 
# | Generic Options:
# | 
# |   --help                           - Display available options (--help-hidden for more)
# |   --version                        - Display the version of this program
# | 
# | clang-tidy options:
# | 
# |   --allow-no-checks                - Allow empty enabled checks. This suppresses
# |                                      the "no checks enabled" error when disabling
# |                                      all of the checks.
# |   --checks=<string>                - Comma-separated list of globs with optional '-'
# |                                      prefix. Globs are processed in order of
# |                                      appearance in the list. Globs without '-'
# |                                      prefix add checks with matching names to the
# |                                      set, globs with the '-' prefix remove checks
# |                                      with matching names from the set of enabled
# |                                      checks. This option's value is appended to the
# |                                      value of the 'Checks' option in .clang-tidy
# |                                      file, if any.
# |   --config=<string>                - Specifies a configuration in YAML/JSON format:
# |                                        -config="{Checks: '*',
# |                                                  CheckOptions: {x: y}}"
# |                                      When the value is empty, clang-tidy will
# |                                      attempt to find a file named .clang-tidy for
# |                                      each source file in its parent directories.
# |   --config-file=<string>           - Specify the path of .clang-tidy or custom config file:
# |                                       e.g. --config-file=/some/path/myTidyConfigFile
# |                                      This option internally works exactly the same way as
# |                                       --config option after reading specified config file.
# |                                      Use either --config-file or --config, not both.
# |   --dump-config                    - Dumps configuration in the YAML format to
# |                                      stdout. This option can be used along with a
# |                                      file name (and '--' if the file is outside of a
# |                                      project with configured compilation database).
# |                                      The configuration used for this file will be
# |                                      printed.
# |                                      Use along with -checks=* to include
# |                                      configuration of all checks.
# |   --enable-check-profile           - Enable per-check timing profiles, and print a
# |                                      report to stderr.
# |   --enable-module-headers-parsing  - Enables preprocessor-level module header parsing
# |                                      for C++20 and above, empowering specific checks
# |                                      to detect macro definitions within modules. This
# |                                      feature may cause performance and parsing issues
# |                                      and is therefore considered experimental.
# |   --exclude-header-filter=<string> - Regular expression matching the names of the
# |                                      headers to exclude diagnostics from. Diagnostics
# |                                      from the main file of each translation unit are
# |                                      always displayed.
# |                                      Must be used together with --header-filter.
# |                                      Can be used together with -line-filter.
# |                                      This option overrides the 'ExcludeHeaderFilterRegex'
# |                                      option in .clang-tidy file, if any.
# |   --experimental-custom-checks     - Enable experimental clang-query based
# |                                      custom checks.
# |                                      see https://clang.llvm.org/extra/clang-tidy/QueryBasedCustomChecks.html.
# |   --explain-config                 - For each enabled check explains, where it is
# |                                      enabled, i.e. in clang-tidy binary, command
# |                                      line or a specific configuration file.
# |   --export-fixes=<filename>        - YAML file to store suggested fixes in. The
# |                                      stored fixes can be applied to the input source
# |                                      code with clang-apply-replacements.
# |   --extra-arg=<string>             - Additional argument to append to the compiler command line
# |   --extra-arg-before=<string>      - Additional argument to prepend to the compiler command line
# |   --fix                            - Apply suggested fixes. Without -fix-errors
# |                                      clang-tidy will bail out if any compilation
# |                                      errors were found.
# |   --fix-errors                     - Apply suggested fixes even if compilation
# |                                      errors were found. If compiler errors have
# |                                      attached fix-its, clang-tidy will apply them as
# |                                      well.
# |   --fix-notes                      - If a warning has no fix, but a single fix can
# |                                      be found through an associated diagnostic note,
# |                                      apply the fix.
# |                                      Specifying this flag will implicitly enable the
# |                                      '--fix' flag.
# |   --format-style=<string>          - Style for formatting code around applied fixes:
# |                                        - 'none' (default) turns off formatting
# |                                        - 'file' (literally 'file', not a placeholder)
# |                                          uses .clang-format file in the closest parent
# |                                          directory
# |                                        - '{ <json> }' specifies options inline, e.g.
# |                                          -format-style='{BasedOnStyle: llvm, IndentWidth: 8}'
# |                                        - 'llvm', 'google', 'webkit', 'mozilla'
# |                                      See clang-format documentation for the up-to-date
# |                                      information about formatting styles and options.
# |                                      This option overrides the 'FormatStyle` option in
# |                                      .clang-tidy file, if any.
# |   --header-filter=<string>         - Regular expression matching the names of the
# |                                      headers to output diagnostics from. The default
# |                                      value is '.*', i.e. diagnostics from all non-system
# |                                      headers are displayed by default. Diagnostics
# |                                      from the main file of each translation unit are
# |                                      always displayed.
# |                                      Can be used together with -line-filter.
# |                                      This option overrides the 'HeaderFilterRegex'
# |                                      option in .clang-tidy file, if any.
# |   --line-filter=<string>           - List of files and line ranges to output diagnostics from.
# |                                      The range is inclusive on both ends. Can be used together
# |                                      with -header-filter. The format of the list is a JSON
# |                                      array of objects. For example:
# |                                      
# |                                        [
# |                                          {"name":"file1.cpp","lines":[[1,3],[5,7]]},
# |                                          {"name":"file2.h"}
# |                                        ]
# |                                      
# |                                      This will output diagnostics from 'file1.cpp' only for
# |                                      the line ranges [1,3] and [5,7], as well as all from the
# |                                      entire 'file2.h'.
# |   --list-checks                    - List all enabled checks and exit. Use with
# |                                      -checks=* to list all available checks.
# |   --load=<pluginfilename>          - Load the specified plugin
# |   -p <string>                      - Build path
# |   --quiet                          - Run clang-tidy in quiet mode. This suppresses
# |                                      printing statistics about ignored warnings and
# |                                      warnings treated as errors if the respective
# |                                      options are specified.
# |   --removed-arg=<string>           - List of arguments to remove from the command
# |                                      line sent to the compiler. Please note that
# |                                      removing arguments might change the semantic
# |                                      of the analzed code, possibly leading to
# |                                      compiler errors, false positives or
# |                                      false negatives. This option is applied 
# |                                      before --extra-arg and --extra-arg-before
# |   --store-check-profile=<prefix>   - By default reports are printed in tabulated
# |                                      format to stderr. When this option is passed,
# |                                      these per-TU profiles are instead stored as JSON.
# |   --system-headers                 - Display the errors from system headers.
# |                                      This option overrides the 'SystemHeaders' option
# |                                      in .clang-tidy file, if any.
# |   --use-color                      - Use colors in diagnostics. If not set, colors
# |                                      will be used if the terminal connected to
# |                                      standard output supports colors.
# |                                      This option overrides the 'UseColor' option in
# |                                      .clang-tidy file, if any.
# |   --verify-config                  - Check the config files to ensure each check and
# |                                      option is recognized without running any checks.
# |   --vfsoverlay=<filename>          - Overlay the virtual filesystem described by file
# |                                      over the real file system.
# |   --warnings-as-errors=<string>    - Upgrades warnings to errors. Same format as
# |                                      '-checks'.
# |                                      This option's value is appended to the value of
# |                                      the 'WarningsAsErrors' option in .clang-tidy
# |                                      file, if any.
# `-----------------------------
# .---command stderr------------
# | Error: no checks enabled.
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>

If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the `infrastructure` label.

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


More information about the cfe-commits mailing list