summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra
Commit message (Collapse)AuthorAgeFilesLines
...
* [clangd] Initial clang-tidy diagnostics support.Sam McCall2018-11-164-4/+125
| | | | | | | | | | | | | | | | | | | | | Summary: This runs checks over a restricted subset of the TU: - preprocessor callbacks just receive the truncated PP events that occur when a preamble is used. - ASTMatchers run only over the top-level decls in the main-file This patch just turns on one simple check (bugprone-sizeof-expression) with no configuration. Configuration is complex enough to warrant a separate patch This depends on a patch allowing traversal to be restricted to a scope. Reviewers: hokein Subscribers: srhines, mgorny, ilya-biryukov, ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits Differential Revision: https://reviews.llvm.org/D54204 llvm-svn: 347036
* [clang-tidy] Fix reference to -[NSError init] in AvoidNSErrorInitCheck.hStephane Moore2018-11-151-1/+1
| | | | llvm-svn: 347000
* Remove myself as owner of clang-query.Peter Collingbourne2018-11-151-4/+0
| | | | | | | | | I haven't been involved with the project for years, so it's probably best for someone else to be the code owner. Differential Revision: https://reviews.llvm.org/D54453 llvm-svn: 346998
* [clang-tidy] Update checks to play nicely with limited traversal scope added ↵Sam McCall2018-11-155-10/+20
| | | | | | | | | | | | | | in r346847 Summary: (See D54204 for original review) Reviewers: hokein Subscribers: xazax.hun, cfe-commits Differential Revision: https://reviews.llvm.org/D54579 llvm-svn: 346961
* [clangd] global-symbol-builder => clangd-indexerHaojian Wu2018-11-151-1/+1
| | | | llvm-svn: 346955
* [clangd] Fix no results returned for global symbols in dexpHaojian Wu2018-11-151-0/+4
| | | | | | | | | | | | | | Summary: For symbols in global namespace (without any scope), we need to add global scope "" to the fuzzy request. Reviewers: ioeric Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits Differential Revision: https://reviews.llvm.org/D54519 llvm-svn: 346947
* Revert "Introduce shard storage to auto-index."Kadir Cetinkaya2018-11-153-233/+25
| | | | | | This reverts commit 6dd1f24aead10a8d375d0311001987198d26e900. llvm-svn: 346945
* Revert "clang-format"Kadir Cetinkaya2018-11-152-4/+4
| | | | | | This reverts commit 0a37e9c3d88a2e21863657df2f7735fb7e5f746e. llvm-svn: 346944
* Revert "Address comments"Kadir Cetinkaya2018-11-153-179/+142
| | | | | | This reverts commit 19a39b14eab2b5339325e276262b177357d6b412. llvm-svn: 346943
* Revert "Address comments."Kadir Cetinkaya2018-11-153-82/+148
| | | | | | This reverts commit b43c4d1c731e07172a382567f3146b3c461c5b69. llvm-svn: 346942
* Address comments.Kadir Cetinkaya2018-11-153-148/+82
| | | | llvm-svn: 346941
* Address commentsKadir Cetinkaya2018-11-153-142/+179
| | | | llvm-svn: 346940
* clang-formatKadir Cetinkaya2018-11-152-4/+4
| | | | llvm-svn: 346939
* Introduce shard storage to auto-index.Kadir Cetinkaya2018-11-153-25/+233
| | | | | | | | | | Reviewers: sammccall, ioeric Subscribers: ilya-biryukov, jkorous, arphaman, cfe-commits Differential Revision: https://reviews.llvm.org/D54269 llvm-svn: 346938
* [Support] Teach YAMLIO about polymorphic typesScott Linder2018-11-141-2/+2
| | | | | | | | | | | | | | | | | | | | | Add support for "polymorphic" types to YAMLIO. PolymorphicTraits can dynamically switch between other traits (Scalar, Map, or Sequence). When inputting, the PolymorphicTraits type is told which type to become, and when outputting the PolymorphicTraits type is asked which type it currently is. Also add support for TaggedScalarTraits to allow dynamically differentiating between multiple scalar types using YAML tags. Serialize empty maps as "{}" and empty sequences as "[]", so that types are preserved when round-tripping PolymorphicTraits. This change has equivalent semantics, but may break e.g. tests which compare output verbatim. Differential Revision: https://reviews.llvm.org/D48144 llvm-svn: 346884
* [clangd] Delete unused includes.Kadir Cetinkaya2018-11-141-2/+0
| | | | llvm-svn: 346872
* Adding myself as the code owner for clang-query as discussed in ↵Aaron Ballman2018-11-141-0/+4
| | | | | | https://reviews.llvm.org/D54453. llvm-svn: 346856
* [clangd] Replace StringRef in SymbolLocation with a char pointer.Haojian Wu2018-11-1414-47/+96
| | | | | | | | | | | | | | | | | Summary: This would save us 8 bytes per ref, and buy us ~40MB in total for llvm index (from ~300MB to ~260 MB). The char pointer must be null-terminated, and llvm::StringSaver guarantees it. Reviewers: sammccall Subscribers: ilya-biryukov, ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits Differential Revision: https://reviews.llvm.org/D53427 llvm-svn: 346852
* [clangd] Improve code completion for ObjC methodsSam McCall2018-11-143-11/+164
| | | | | | | | | | | | | | | | | | | | | Summary: Previously code completion did not work well for Objective-C methods which contained multiple arguments as clangd did not expect to see multiple typed-text chunks when handling code completion. Note that even with this change, we do not consider selector fragments from previous arguments to be part of the signature (although we could in the future). Reviewers: sammccall Reviewed By: sammccall Subscribers: ilya-biryukov, ioeric, MaskRay, jkorous, arphaman, jfb, kadircet, cfe-commits Differential Revision: https://reviews.llvm.org/D53934 llvm-svn: 346836
* [clang-tidy] Avoid C arrays checkRoman Lebedev2018-11-1413-0/+297
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: [[ https://bugs.llvm.org/show_bug.cgi?id=39224 | PR39224 ]] As discussed, we can't always do the transform automatically due to that array-to-pointer decay of C array. In order to detect whether we can do said transform, we'd need to be able to see all usages of said array, which is, i would say, rather impossible if e.g. it is in the header. Thus right now no fixit exists. Exceptions: `extern "C"` code. References: * [[ https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#es27-use-stdarray-or-stack_array-for-arrays-on-the-stack | CPPCG ES.27: Use std::array or stack_array for arrays on the stack ]] * [[ https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#slcon1-prefer-using-stl-array-or-vector-instead-of-a-c-array | CPPCG SL.con.1: Prefer using STL array or vector instead of a C array ]] * HICPP `4.1.1 Ensure that a function argument does not undergo an array-to-pointer conversion` * MISRA `5-2-12 An identifier with array type passed as a function argument shall not decay to a pointer` Reviewers: aaron.ballman, JonasToth, alexfh, hokein, xazax.hun Reviewed By: JonasToth Subscribers: Eugene.Zelenko, mgorny, rnkovacs, cfe-commits Tags: #clang-tools-extra Differential Revision: https://reviews.llvm.org/D53771 llvm-svn: 346835
* Revert "Add a test checking clang-tidy can find libc++ on Mac"Jonas Toth2018-11-122-19/+0
| | | | | | This reverts commit r346653. llvm-svn: 346678
* [clang-tidy] fix ARM tests, because int and long have same widthJonas Toth2018-11-121-1/+1
| | | | llvm-svn: 346676
* [clangd] Don't show all refs results if -name is ambiguous in dexp.Haojian Wu2018-11-121-0/+6
| | | | | | | | | | Reviewers: ioeric Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits Differential Revision: https://reviews.llvm.org/D54430 llvm-svn: 346671
* [clangd] Allow symbols from AnyScope in dexp.Haojian Wu2018-11-121-0/+1
| | | | | | | | | | | | | | Summary: We should allow symbols from any scope in dexp results, othewise `find StringRef` doesn't return any results (llvm::StringRef). Reviewers: ioeric Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits Differential Revision: https://reviews.llvm.org/D54427 llvm-svn: 346666
* [clang-tidy] new check: bugprone-too-small-loop-variableJonas Toth2018-11-128-0/+503
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The new checker searches for those for loops which has a loop variable with a "too small" type which means this type can't represent all values which are part of the iteration range. For example: ``` int main() { long size = 300000; for( short int i = 0; i < size; ++i) {} } ``` The short type leads to infinite loop here because it can't store all values in the `[0..size]` interval. In a real use case, size means a container's size which depends on the user input. Which means for small amount of objects the algorithm works, but with a larger user input the software will freeze. The idea of the checker comes from the LibreOffice project, where the same check was implemented as a clang compiler plugin, called `LoopVarTooSmall` (LLVM licensed). The idea is the same behind this check, but the code is different because of the different framework. Patch by ztamas. Reviewers: alexfh, hokein, aaron.ballman, JonasToth, xazax.hun, whisperity Reviewed By: JonasToth, whisperity Differential Revision: https://reviews.llvm.org/D53974 llvm-svn: 346665
* Add a test checking clang-tidy can find libc++ on MacIlya Biryukov2018-11-122-0/+19
| | | | | | | | | | | | Reviewers: sammccall, arphaman, EricWF Reviewed By: sammccall Subscribers: christof, cfe-commits Differential Revision: https://reviews.llvm.org/D54311 llvm-svn: 346653
* [clangd] Remember to serialize AnyScope in FuzzyFindRequest json.Eric Liu2018-11-121-1/+2
| | | | llvm-svn: 346648
* [clangd] Fix compile on very old glibcSam McCall2018-11-121-1/+2
| | | | llvm-svn: 346638
* [clangd] Make ClangdFuzzer compile again.Benjamin Kramer2018-11-111-8/+11
| | | | llvm-svn: 346608
* [clang-tidy] fix PR39583 - ignoring ParenCast for string-literals in ↵Jonas Toth2018-11-092-4/+9
| | | | | | | | | | | | | | | | | | | pro-bounds-array-to-pointer-decay Summary: The fix to the issue that `const char* p = ("foo")` is diagnosed as decay is to ignored the ParenCast. Resolves PR39583 Reviewers: aaron.ballman, alexfh, hokein Reviewed By: aaron.ballman Subscribers: nemanjai, xazax.hun, kbarton, cfe-commits Differential Revision: https://reviews.llvm.org/D54281 llvm-svn: 346555
* [clangd] Fix clang-tidy warnings.Kadir Cetinkaya2018-11-091-5/+5
| | | | llvm-svn: 346524
* [clangd] Don't treat top-level decls as "local" if they are from the preamble.Sam McCall2018-11-092-0/+25
| | | | | | | | | | | | | | | Summary: These get passed to HandleTopLevelDecl() if they happen to have been deserialized for any reason. We don't want to treat them as part of the main file. Reviewers: ilya-biryukov Subscribers: ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits Differential Revision: https://reviews.llvm.org/D54303 llvm-svn: 346503
* [clangd] Make TestTU build with preamble, and fix the fallout.Sam McCall2018-11-095-67/+44
| | | | | | | | | | | | | | | | | | | | Our testing didn't reflect reality: live clangd almost always uses a preamble, and sometimes the preamble behaves differently. This patch fixes a common test helper to be more realistic. Preamble doesn't preserve information about which tokens come from the command-line (this gets inlined into a source file). So remove logic that attempts to treat symbols with such names differently. A SymbolCollectorTest tries to verify that locals in headers are not indexed, with preamble enabled this is only meaningful for locals of auto-typed functions (otherwise the bodies aren't parsed). Tests were relying on the fact that the findAnyDecl helper actually did expose symbols from headers. Resolve by making all these functions consistently able to find symbols in headers/preambles. llvm-svn: 346488
* Remove unused c'tor.Bill Wendling2018-11-091-2/+0
| | | | llvm-svn: 346467
* Ignore implicit things like ConstantExpr.Bill Wendling2018-11-091-1/+2
| | | | llvm-svn: 346461
* [clang-tidy] Untangle layering in ClangTidyDiagnosticConsumer somewhat. NFCSam McCall2018-11-085-21/+24
| | | | | | | | | | | | | | | | | | | | | | | Summary: Clang's hierarchy is CompilerInstance -> DiagnosticsEngine -> DiagnosticConsumer. (Ownership is optional/shared, but this structure is fairly clear). Currently ClangTidyDiagnosticConsumer *owns* the DiagnosticsEngine: - this inverts the hierarchy, which is confusing - this means ClangTidyDiagnosticConsumer() mutates the passed-in context, which is both surprising and limits flexibility - it's not possible to use a different DiagnosticsEngine with ClangTidy This means a little bit more code in the places ClangTidy is used standalone, but more flexibility in using ClangTidy with other diagnostics configurations. Reviewers: hokein Subscribers: xazax.hun, cfe-commits Differential Revision: https://reviews.llvm.org/D54033 llvm-svn: 346418
* [clang-tidy] fix test after r346414Sam McCall2018-11-081-1/+3
| | | | llvm-svn: 346415
* [clangd] Drop namespace references in the index.Haojian Wu2018-11-073-1/+7
| | | | | | | | | | | | | | | | | | | Summary: Namespace references is less useful compared with other symbols, and they contribute large part of the index. This patch drops them. The number of refs is reduced from 5.4 million to 4.7 million. | | Before | After | |file size | 78 MB | 71MB | |memory | 330MB | 300MB| Reviewers: sammccall Subscribers: ilya-biryukov, ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits Differential Revision: https://reviews.llvm.org/D54202 llvm-svn: 346319
* [clangd] Fix mainfile filtering for diagnostics: don't emit diagnostics for ↵Sam McCall2018-11-071-1/+1
| | | | | | builtin headers. (Relevant for clang-tidy) llvm-svn: 346312
* [clangd] [NFC] Fix clang-tidy warnings.Kadir Cetinkaya2018-11-072-2/+2
| | | | | | | | | | Reviewers: ioeric, sammccall, ilya-biryukov, hokein Subscribers: MaskRay, jkorous, arphaman, cfe-commits Differential Revision: https://reviews.llvm.org/D54157 llvm-svn: 346308
* [clangd] Deduplicate query scopes.Eric Liu2018-11-062-8/+23
| | | | | | | | | | | | | | Summary: For example, when anonymous namespace is present, duplicated namespaces might be generated for the enclosing namespace. Reviewers: ilya-biryukov Subscribers: MaskRay, jkorous, arphaman, kadircet, cfe-commits Differential Revision: https://reviews.llvm.org/D54105 llvm-svn: 346224
* [clangd] Get rid of QueryScopes.empty() == AnyScope special case.Eric Liu2018-11-067-7/+17
| | | | | | | | | | | | Reviewers: sammccall Reviewed By: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits Differential Revision: https://reviews.llvm.org/D53933 llvm-svn: 346223
* [clangd] auto-index stores symbols per-file instead of per-TU.Eric Liu2018-11-0612-67/+363
| | | | | | | | | | | | | | | | | Summary: This allows us to deduplicate header symbols across TUs. File digests are collects when collecting symbols/refs. And the index store deduplicates file symbols based on the file digest. Reviewers: sammccall, hokein Reviewed By: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits Differential Revision: https://reviews.llvm.org/D53433 llvm-svn: 346221
* [clang-tidy] run() doesn't update the SourceManager.Sam McCall2018-11-061-1/+3
| | | | | | | | | | | | | | | | | | | | Summary: By now the context's SourceManager is now initialized everywhere that ClangTidyCheck::registerMatcher() is called, so the call from run() seems entirely redundant, and indeed all the tests pass. This solves a problem with embedding clang-tidy: if using a DiagnosticsEngine which already has file state, re-setting its SourceManager (to the same value) causes an assertion. (There are other ways to solve this problem, but this is the simplest). Reviewers: hokein, alexfh Subscribers: xazax.hun, cfe-commits Differential Revision: https://reviews.llvm.org/D54061 llvm-svn: 346219
* [clang-tidy] fix example code-blocks indendationJonas Toth2018-11-052-3/+3
| | | | llvm-svn: 346176
* [clang-tidy] doc removew hitespace in front of code-block-lineJonas Toth2018-11-0511-30/+30
| | | | llvm-svn: 346173
* [clangd] don't buffer the input-mirror stream, it's used to diagnose crashesSam McCall2018-11-021-0/+2
| | | | llvm-svn: 346054
* [fix][clang-tidy] fix for r345961 that introduced a test failure on Windows ↵Jonas Toth2018-11-021-1/+1
| | | | | | | | | | | | | | | | | | builds r345961 introduced a path check in .\tools\clang\tools\extra\test\clang-tidy\clang-tidy-run-with-database.cpp. r345961 added a check line for a path that only handled / on unix machines and not \ on windows machines. This patch handles both cases. Patch by TWeaver. Differential Revision: https://reviews.llvm.org/D54036 llvm-svn: 345995
* [clang-tidy] Fixed code sample in a comment. NFCAlexander Kornienko2018-11-021-4/+6
| | | | llvm-svn: 345984
* [clang-tidy] .reset(new X) -> make_unique<X>() in a comment. NFCAlexander Kornienko2018-11-021-2/+2
| | | | llvm-svn: 345979
OpenPOWER on IntegriCloud