[PATCH] D23409: Make clang-tidy work with clang-cl

Alexander Kornienko via cfe-commits cfe-commits at lists.llvm.org
Fri Aug 12 10:16:30 PDT 2016

alexfh added a comment.

The changes in Driver LGTM (though I'd prefer someone who knows Driver to look).

Could you move lib/Tooling/JSONCompilationDatabase.cpp to a separate patch? It seems like an orthogonal change.

As for a clang-cl-mode test for clang-tidy, clang-tidy-run-with-database.cpp is only tangentially related. We probably need two tests: one with a JSON compilation database and the other with a fixed compilation database (passing compiler arguments after `--`). In both cases I'd use flags like `/D` to verify correct parsing of the command line. Something along the lines of:

  // RUN: clang-tidy -checks=-*,modernize-use-nullptr %s -- clang-cl /DTEST1 /DFOO=foo /DBAR#bar | FileCheck -implicit-check-not="{{warning|error}}:" %s
  int *a = 0;
  // CHECK: :[[@LINE-1]]:10: warning: use nullptr
  #ifdef TEST1
  int *b = 0;
  // CHECK: :[[@LINE-1]]:10: warning: use nullptr
  #define foo 1
  #define bar 1
  #if FOO
  int *c = 0;
  // CHECK: :[[@LINE-1]]:10: warning: use nullptr
  #if BAR
  int *d = 0;
  // CHECK: :[[@LINE-1]]:10: warning: use nullptr

Maybe some other aspects of clang-cl mode options parsing can be tested this way as well.


More information about the cfe-commits mailing list