question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

[REOPEN] clang-tidy Error: no checks enabled.

See original GitHub issue

After a clean install vs 2019 and Clang-power-tools LLVM installed with file:///F:/Downloads/LLVM-8.0.0-win64.exe

VS solution available here: https://github.com/Nelson-numerical-software/nelson

What did I miss ?


--- CLANG TIDY-FIX STARTED ---

PROJECT: D:\Developpements\Github\nelson\modules\integer\src\c\nlsInteger.vcxproj
1: D:\Developpements\Github\nelson\modules\integer\src\cpp\ToInteger.cpp
Error: no checks enabled.
USAGE: clang-tidy.exe [options] <source0> [... <sourceN>]
OPTIONS:
Generic Options:
  -help                         - Display available options (-help-hidden for more)
  -version                      - Display the version of this program
clang-tidy options:
  -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: [{key: x,
                                                              value: 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.
  -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.
  -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.
  -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. Diagnostics
                                  from the main file of each translation unit are
                                  always displayed.
                                  Can be used together with -line-filter.
                                  This option overrides the 'HeaderFilter' option
                                  in .clang-tidy file, if any.
  -line-filter=<string>         - 
                                  List of files with line ranges to filter the
                                  warnings. Can be used together with
                                  -header-filter. The format of the list is a
                                  JSON array of objects:
                                    [
                                      {"name":"file1.cpp","lines":[[1,3],[5,7]]},
                                      {"name":"file2.h"}
                                    ]
  -list-checks                  - 
                                  List all enabled checks and exit. Use with
                                  -checks=* to list all available checks.
  -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.
  -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.
  -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.

Got errors.

--- CLANG TIDY-FIX FINISHED ---

Issue Analytics

  • State:closed
  • Created 4 years ago
  • Comments:14 (8 by maintainers)

github_iconTop GitHub Comments

2reactions
bo3bcommented, Mar 11, 2022

Actually I had those defaults enabled, but it still did not work.

However, experimenting with the output file, it looks like the problem is that the YAML parser does not handle backslash like normal.

Checks:            '-*,\
readability-identifier-naming'

Is valid YAML syntax for a string, but it looks like makes this fail. The failure mode is also not reporting the error it finds in the file, and is reporting ‘no checks’ instead of a parsing error.

In any case, if I put that all on a single line, it can find the file and work normally. Thanks for the help.

1reaction
mariru27commented, Mar 11, 2022

It looks like you didn’t select any Predefined Checks

Try to select on Predefined Checks -> Enable All or Defaults Then Export tidy file config.

In result, you will have more Checks in .clang-tidy file.

Example:

Checks:            '-*,clang-analyzer-core.DivideZero,clang-analyzer-core.DynamicTypePropagation,clang-analyzer-core.NonNullParamChecker,clang-analyzer-core.NonnilStringConstants,clang-analyzer-core.NullDereference,clang-analyzer-core.StackAddrEscapeBase,clang-analyzer-core.uninitialized.Branch,clang-analyzer-core.uninitialized.CapturedBlockVariable,clang-analyzer-core.uninitialized.UndefReturn,clang-analyzer-cplusplus.InnerPointer,clang-analyzer-cplusplus.Move,clang-analyzer-cplusplus.NewDelete,clang-analyzer-cplusplus.NewDeleteLeaks,clang-analyzer-cplusplus.PlacementNew,clang-analyzer-cplusplus.PureVirtualCall,clang-analyzer-cplusplus.SelfAssignment,clang-analyzer-cplusplus.SmartPtrModeling,clang-analyzer-cplusplus.VirtualCallModeling,clang-analyzer-deadcode.DeadStores,clang-analyzer-fuchsia.HandleChecker,clang-analyzer-nullability.NullPassedToNonnull,clang-analyzer-nullability.NullReturnedFromNonnull,clang-analyzer-nullability.NullabilityBase,clang-analyzer-nullability.NullableDereferenced,clang-analyzer-nullability.NullablePassedToNonnull,clang-analyzer-nullability.NullableReturnedFromNonnull,clang-analyzer-optin.cplusplus.UninitializedObject,clang-analyzer-optin.cplusplus.VirtualCall,clang-analyzer-optin.mpi.MPI-Checker,clang-analyzer-optin.osx.OSObjectCStyleCast,clang-analyzer-optin.osx.cocoa.localizability.EmptyLocalizationContextChecker,clang-analyzer-optin.osx.cocoa.localizability.NonLocalizedStringChecker,clang-analyzer-optin.performance.GCDAntipattern,clang-analyzer-optin.performance.Padding,clang-analyzer-optin.portability.UnixAPI,clang-analyzer-osx.API,clang-analyzer-osx.MIG,clang-analyzer-osx.NSOrCFErrorDerefChecker,clang-analyzer-osx.NumberObjectConversion,clang-analyzer-osx.OSObjectRetainCount,clang-analyzer-osx.ObjCProperty,clang-analyzer-osx.SecKeychainAPI,clang-analyzer-osx.cocoa.AtSync,clang-analyzer-osx.cocoa.AutoreleaseWrite,clang-analyzer-osx.cocoa.ClassRelease,clang-analyzer-osx.cocoa.Dealloc,clang-analyzer-osx.cocoa.IncompatibleMethodTypes,clang-analyzer-osx.cocoa.Loops,clang-analyzer-osx.cocoa.MissingSuperCall,clang-analyzer-osx.cocoa.NSAutoreleasePool,clang-analyzer-osx.cocoa.NSError,clang-analyzer-osx.cocoa.NilArg,clang-analyzer-osx.cocoa.NonNilReturnValue,clang-analyzer-osx.cocoa.ObjCGenerics,clang-analyzer-osx.cocoa.RetainCount,clang-analyzer-osx.cocoa.RetainCountBase,clang-analyzer-osx.cocoa.RunLoopAutoreleaseLeak,clang-analyzer-osx.cocoa.SelfInit,clang-analyzer-osx.cocoa.SuperDealloc,clang-analyzer-osx.cocoa.UnusedIvars,clang-analyzer-osx.cocoa.VariadicMethodTypes,clang-analyzer-osx.coreFoundation.CFError,clang-analyzer-osx.coreFoundation.CFNumber,clang-analyzer-osx.coreFoundation.CFRetainRelease,clang-analyzer-osx.coreFoundation.containers.OutOfBounds,clang-analyzer-osx.coreFoundation.containers.PointerSizedValues,clang-analyzer-security.FloatLoopCounter,clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling,clang-analyzer-security.insecureAPI.SecuritySyntaxChecker,clang-analyzer-security.insecureAPI.UncheckedReturn,clang-analyzer-security.insecureAPI.bcmp,clang-analyzer-security.insecureAPI.bcopy,clang-analyzer-security.insecureAPI.bzero,clang-analyzer-security.insecureAPI.decodeValueOfObjCType,clang-analyzer-security.insecureAPI.getpw,clang-analyzer-security.insecureAPI.gets,clang-analyzer-security.insecureAPI.mkstemp,clang-analyzer-security.insecureAPI.mktemp,clang-analyzer-security.insecureAPI.rand,clang-analyzer-security.insecureAPI.strcpy,clang-analyzer-security.insecureAPI.vfork,clang-analyzer-unix.API,clang-analyzer-unix.DynamicMemoryModeling,clang-analyzer-unix.Malloc,clang-analyzer-unix.MallocSizeof,clang-analyzer-unix.MismatchedDeallocator,clang-analyzer-unix.Vfork,clang-analyzer-unix.cstring.BadSizeArg,clang-analyzer-unix.cstring.CStringModeling,clang-analyzer-unix.cstring.NullArg,clang-analyzer-valist.CopyToSelf,clang-analyzer-valist.Uninitialized,clang-analyzer-valist.Unterminated,clang-analyzer-valist.ValistBase,clang-analyzer-webkit.NoUncountedMemberChecker,clang-analyzer-webkit.RefCntblBaseVirtualDtor,clang-analyzer-webkit.UncountedLambdaCapturesChecker'
WarningsAsErrors:  ''
HeaderFilterRegex: '.*'
FormatStyle:       'file'

Let me know if this works for you too

Best regards, Marina

Read more comments on GitHub >

github_iconTop Results From Across the Web

cmake + clang_tidy - disable checking in directory
So I tried putting empty .clang-tidy file in those directories (empty = with -checks=-* ). This doesn't work because Error: no checks ......
Read more >
⚙ D3981 Exit with error when no checks enabled.
Revision Contents. Changeset List ; ClangTidyMain.cpp. 10 lines ; test/. clang-tidy/ ; diagnostic.cpp. 2 lines ; select-checks.cpp. 3 lines ...
Read more >
clang-tidy syntax error results in no output or error messages
In a new project, enable clang-tidy. In the clang-tidy property page, under checks to enable, type “syntax-error”; Rebuild project.
Read more >
CXX_CLANG_TIDY does not report when clang-tidy ...
I've noticed that CXX_CLANG_TIDY doesn't work correctly if I specify several arguments that contain the '*' symbol. Here's an example:
Read more >
Visual Studio Code C++ December 2021 Update: clang-tidy
Clang -tidy is a clang-based C++ linter tool that detects common errors in your code, like style violations and bugs that can be...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found