Commit Graph

479 Commits

Author SHA1 Message Date
Alexander Kornienko 6fbc619ab9 Use DiagnosticRenderer to convert clang diagnostics to clang-tidy ones.
Summary:
This is immediately useful for generating macro expansion notes, and
may be useful for other things later on.

Reviewers: klimek, djasper

Reviewed By: klimek

CC: cfe-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D2950

llvm-svn: 203457
2014-03-10 13:11:17 +00:00
Alexander Kornienko 33a0bce133 Deduplicate clang-tidy error messages by file, offset and message.
Summary: Peter, I guess, this can help you in testing your check.

Reviewers: djasper, pcc, klimek

Reviewed By: klimek

CC: cfe-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D2989

llvm-svn: 203451
2014-03-10 09:45:49 +00:00
Ahmed Charles 6a2dc5c381 [C++11] Replace OwningPtr with std::unique_ptr.
This removes all references to OwningPtr, which should be fairly
undisruptive to out-of-tree projects since they are unlikely to use
clang-tools-extra as a library instead of a set of tools.

llvm-svn: 203382
2014-03-09 09:24:40 +00:00
NAKAMURA Takumi 67101a52de clang-tools-extra/test/pp-trace/pp-trace-modules.cpp: Flush module cache to let robust around r203317.
llvm-svn: 203369
2014-03-09 04:10:17 +00:00
NAKAMURA Takumi dc979e8c2c clang-tools-extra/test/pp-trace/pp-trace-modules.cpp: Use [[@LINE]].
llvm-svn: 203368
2014-03-09 04:10:05 +00:00
Alexander Kornienko 95cd50f6d1 Use the appropriate operator<< instead of addRanges.
llvm-svn: 203118
2014-03-06 13:24:28 +00:00
Alexander Kornienko df1e3cb157 Use range-based for loops for better readability. No functional changes intended.
Reviewers: chandlerc

Reviewed By: chandlerc

CC: cfe-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D2979

llvm-svn: 203101
2014-03-06 10:17:46 +00:00
Alexander Kornienko b4a8079bf0 Use more specific checks filter in the test.
llvm-svn: 203097
2014-03-06 08:31:03 +00:00
Alexander Kornienko 9de3a98c4e Fixed a crash when handling diagnostics without a valid file location, e.g. 'error reading <file>'.
llvm-svn: 202987
2014-03-05 15:44:36 +00:00
Alexander Kornienko 16ac6cebcf Added a module for checks not related to LLVM or Google coding style.
llvm-svn: 202970
2014-03-05 13:14:32 +00:00
Alexander Kornienko 21f3b77707 Fixed formatting.
llvm-svn: 202969
2014-03-05 13:01:24 +00:00
Chandler Carruth edc9e38810 [cleanup] Re-sort headers with llvm/utils/sort_includes.py.
llvm-svn: 202809
2014-03-04 10:03:05 +00:00
Alexander Kornienko 7c9b29f525 Normalized the usage of override in the doc.
llvm-svn: 202710
2014-03-03 13:36:30 +00:00
Craig Topper 6d73f449b8 Determine support for colored output from stdout instead of stderr since that's where the diagnostics go.
llvm-svn: 202680
2014-03-03 07:37:42 +00:00
Ahmed Charles de61d0edad [C++11] Add #include's for OwningPtr.
Allows removing #include's in LLVM while switching to std::unique_ptr.

llvm-svn: 202676
2014-03-03 07:00:47 +00:00
Peter Collingbourne b17a3b3d33 Add a level parameter to ClangTidyCheck::diag.
The goal is to make it possible for checks to emit diagnostics at levels
other than 'warning'.

Differential Revision: http://llvm-reviews.chandlerc.com/D2913

llvm-svn: 202668
2014-03-02 23:34:48 +00:00
Dmitri Gribenko 23077e3e0a Documentation comments: fix incorrect usage of \param
llvm-svn: 202649
2014-03-02 16:48:59 +00:00
Benjamin Kramer ffe110b304 [C++11] Replace llvm::tie with std::tie.
llvm-svn: 202646
2014-03-02 13:48:32 +00:00
Craig Topper e67972c462 Revert a LLVM_OVERRIDE to 'override' change in documentation. My search and replace was a little overzealous.
llvm-svn: 202633
2014-03-02 10:24:34 +00:00
Craig Topper a3dbe84166 [C++11] Replace LLVM_OVERRIDE with 'override'
llvm-svn: 202632
2014-03-02 10:20:11 +00:00
Tobias Grosser 6c6af852f9 Add new 'remark' diagnostic type
llvm-svn: 202477
2014-02-28 09:42:12 +00:00
Alexander Kornienko 31219d3abd Added a naive NOLINT implementation.
Summary:
Added a naive NOLINT implementation. It doesn't care about specific
linter categories, just the "// NOLINT" on the same line as a diagnostic.

Reviewers: klimek

Reviewed By: klimek

CC: cfe-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D2896

llvm-svn: 202452
2014-02-28 00:27:50 +00:00
Alexander Kornienko 098871609f Made the ClangTidyTest helper class independent of the testing framework.
Reviewers: klimek

Reviewed By: klimek

CC: cfe-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D2895

llvm-svn: 202399
2014-02-27 14:28:02 +00:00
Alexander Kornienko cb9272fe66 Normalized "virtual" and "LLVM_OVERRIDE" usage in clang-tidy.
Reviewers: klimek

Reviewed By: klimek

CC: cfe-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D2894

llvm-svn: 202392
2014-02-27 13:14:51 +00:00
NAKAMURA Takumi 9698686505 [CMake] Use LINK_LIBS instead of target_link_libraries().
llvm-svn: 202238
2014-02-26 06:41:29 +00:00
Alexander Kornienko 84e30a7346 Adding documentation for clang-tidy.
Summary:
Contains a short user's manual and some instructions on writing
clang-tidy checks.

Reviewers: klimek, djasper

Reviewed By: klimek

CC: cfe-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D2880

llvm-svn: 202164
2014-02-25 16:46:13 +00:00
Rafael Espindola 26af26255c Update for llvm api change.
llvm-svn: 202055
2014-02-24 18:21:04 +00:00
Rafael Espindola dc59a36caa Update for llvm api change.
llvm-svn: 202045
2014-02-24 15:41:44 +00:00
NAKAMURA Takumi 871d104e1c [CMake] Apply DEPENDS to clangTidy.
llvm-svn: 201977
2014-02-23 13:43:01 +00:00
Peter Collingbourne b549019c3c Add a makefile for clang-query. Patch by Alex Horn!
While at it, have cmake build and test the tool if libedit is not installed,
as this dependency is now optional.

llvm-svn: 201599
2014-02-18 19:46:01 +00:00
Alexander Kornienko d68aa4c0fc Re-add the '!' removed by mistake.
llvm-svn: 201343
2014-02-13 16:29:39 +00:00
Alexander Kornienko 298b3823b5 Clang-tidy: don't create ASTConsumers not needed for the set of checks we perform.
Summary:
This doesn't have any significant effect on the performance, but it
looks like a good thing to do.

Reviewers: djasper, klimek

Reviewed By: klimek

CC: cfe-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D2763

llvm-svn: 201340
2014-02-13 16:10:47 +00:00
Alexander Kornienko 32eaa37b15 Fix ExplicitConstructorCheck to warn only on in-class declarations.
Summary:
I'm not absolutely sure this is 100% correct solution, but it seems to
do what I expect.

Reviewers: djasper, klimek

Reviewed By: djasper

CC: cfe-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D2756

llvm-svn: 201308
2014-02-13 10:11:48 +00:00
Alexander Kornienko d1afc70795 Consume checker names from clang static analyzer.
Summary: This patch depends on patches D2556 and D2557.

Reviewers: klimek

Reviewed By: klimek

CC: cfe-commits, jordan_rose, krememek

Differential Revision: http://llvm-reviews.chandlerc.com/D2620

llvm-svn: 201221
2014-02-12 09:52:07 +00:00
Nick Lewycky ccf8e29060 The diagnostic printer expects the LangOptions to still be alive. Give it one that lives at least as long as all the uses of it. This is still wrong though, we should be passing in the correct LangOpts for a given source file.
llvm-svn: 200952
2014-02-06 22:57:16 +00:00
Alexander Kornienko 54461eb389 Improve clang-tidy diagnostic output and filtering.
Summary:
This patch introduces several improvements to clang-tidy diagnostic;
  1. Make filtering of messages from non-user code more reliable. Output an
     error when it or any of the related notes touches user code. This fixes an
     assertion when an error has a location in a system header, and one of the
     notes relates to user code.
  2. In order for 1. to work, subscribe to the static analyzer diagnostics using
     a custom PathDiagnosticConsumer.
  3. Enable colors on supported terminals.
  4. Output FixItHints.

Reviewers: djasper

Reviewed By: djasper

CC: cfe-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D2714

llvm-svn: 200924
2014-02-06 14:50:10 +00:00
Alexander Kornienko 99c9d6a0f6 Make the OptionCategory variable static.
llvm-svn: 200841
2014-02-05 13:43:27 +00:00
Alexander Kornienko 6d129d5454 Fix crash when handling an argument parsing-related warning.
Summary: Don't crash on warnings coming before the translation unit starts.

Reviewers: klimek, djasper

Reviewed By: djasper

CC: cfe-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D2676

llvm-svn: 200702
2014-02-03 15:55:35 +00:00
Peter Collingbourne d9a0f254bc Add completion to the query parser, and hook it up to clang-query.
Differential Revision: http://llvm-reviews.chandlerc.com/D2263

llvm-svn: 200604
2014-02-01 01:42:46 +00:00
Peter Collingbourne c31176da02 Switch clang-query to use the lineeditor library.
Differential Revision: http://llvm-reviews.chandlerc.com/D2262

llvm-svn: 200603
2014-02-01 01:42:42 +00:00
NAKAMURA Takumi 298a161927 check-clang-tools: Also it doesn't require neither llvm_src_root nor llvm_obj_root.
llvm-svn: 200148
2014-01-26 12:40:18 +00:00
Alp Toker a143676664 Fix another invalid getCustomDiagID() use to unbreak the build
It was calling the utility wrapper that now requires a constant string
following clang r200132. The StringRef version on DiagnosticIDs appears to have
been what was intended so change to that.

llvm-svn: 200142
2014-01-26 08:36:03 +00:00
Alp Toker 82f8c50a73 Prospective build fix for unsafe usage of getCustomDiagID()
This now requires a compile-time constant string so let's build proper
diagnostic IDs and pass through the inputs as arguments.

Tracks clang changes in r200132.

llvm-svn: 200139
2014-01-26 06:58:01 +00:00
Alp Toker 9fb93576e6 Track clang changes from r200082
llvm-svn: 200084
2014-01-25 16:57:03 +00:00
Alp Toker 65dfc8ce09 Attempt to stabilize the Windows builder
llvm-svn: 200076
2014-01-25 13:09:12 +00:00
NAKAMURA Takumi c28a9a2c33 [CMake] Deprecate CLANG_RUNTIME_OUTPUT_INTDIR and CLANG_LIBRARY_OUTPUT_INTDIR.
LLVM_*_OUTPUT_INTDIR should be available everywhere. It was my mistake when I introduced INTDIR stuff.

llvm-svn: 199597
2014-01-19 13:00:01 +00:00
NAKAMURA Takumi ba496ff394 check-clang-tools: Fixup for r199583.
- Forgot to tweak autoconf's Makefile.
  - Apply lit's param to config.clang_tools_dir.

llvm-svn: 199589
2014-01-19 12:07:45 +00:00
NAKAMURA Takumi 5d942f2229 [CMake] Import CLANG_TOOLS_DIR from check-clang into check-clang-tools for standalone clang.
llvm-svn: 199583
2014-01-19 11:19:07 +00:00
NAKAMURA Takumi fda2cf9007 [CMake] check_library_exists() requires inclusion in clang standalone build.
llvm-svn: 199578
2014-01-19 08:54:11 +00:00
Alexander Kornienko 41bfe8dde1 Add the check name to the clang-tidy diagnostic output.
Summary:
Pass check names all the way from ClangTidyModule through
ClangTidyCheck and ClangTidyContext to ClangTidyError, and output it in
handleErrors. This allows to find mis-behaving check and disable it easily.

Reviewers: djasper, klimek

Reviewed By: djasper

CC: cfe-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D2534

llvm-svn: 199094
2014-01-13 10:50:51 +00:00