Commit Graph

2632 Commits

Author SHA1 Message Date
Chih-Hung Hsieh ae3527e6bb [clang-tidy] Add a close-on-exec check on accept() in Android module.
Summary:
accept() is better to be replaced by accept4() with SOCK_CLOEXEC
flag to avoid file descriptor leakage.

Differential Revision: https://reviews.llvm.org/D35362

llvm-svn: 311024
2017-08-16 17:18:16 +00:00
Chih-Hung Hsieh fec506daaa [clang-tidy] Use CloexecCheck as base class.
Summary:
Simplify registerMatchers and check functions in CloexecCreatCheck,
CloexecSocketCheck, CloexecFopenCheck, and CloexecOpenCheck.

Differential Revision: https://reviews.llvm.org/D36761

llvm-svn: 311020
2017-08-16 16:59:26 +00:00
Chih-Hung Hsieh 7651e66cdf [clang-tidy] Add a close-on-exec check on inotify_init1() in Android module.
Summary:
inotify_init1() is better to set IN_CLOEXEC flag to avoid file descriptor leakage.

Differential Revision: https://reviews.llvm.org/D35368

llvm-svn: 310863
2017-08-14 17:45:48 +00:00
Chih-Hung Hsieh 2e6f9a16f9 [clang-tidy] Add a close-on-exec check on inotify_init() in Android module.
Summary:
inotify_init() is better to be replaced by inotify_init1() with IN_CLOEXEC flag to avoid file descriptor leakage.

Differential Revision: https://reviews.llvm.org/D35370

llvm-svn: 310861
2017-08-14 17:25:41 +00:00
Chih-Hung Hsieh 56650e7fc5 [clang-tidy] Add a close-on-exec check on dup() in Android module.
Summary:
dup() is better to be replaced by fcntl() to avoid file descriptor leakage.

Differential Revision: https://reviews.llvm.org/D35364

llvm-svn: 310858
2017-08-14 17:04:16 +00:00
Simon Pilgrim 0f311a4189 Add braces to silence gcc dangling-else warnings. NFCI.
llvm-svn: 310830
2017-08-14 11:05:56 +00:00
Ilya Biryukov db8b2d7b20 [clangd] Use multiple working threads in clangd.
Reviewers: bkramer, krasimir, klimek

Reviewed By: klimek

Subscribers: arphaman, cfe-commits

Differential Revision: https://reviews.llvm.org/D36261

llvm-svn: 310821
2017-08-14 08:45:47 +00:00
Ilya Biryukov 91dbf5b6b4 [clangd] Check if CompileCommand has changed on forceReparse.
Reviewers: krasimir, bkramer, klimek

Reviewed By: klimek

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D36398

llvm-svn: 310819
2017-08-14 08:37:32 +00:00
Ilya Biryukov c5ad35fb23 [clangd] Fixed a data race.
Summary:
Calling addDocument after removeDocument could have resulted in an
invalid program state (AST and Preamble for the valid document could
have been incorrectly removed).
This commit also includes an improved CppFile::cancelRebuild
implementation that allows to cancel reparse without waiting for
ongoing rebuild to finish.

Reviewers: krasimir, bkramer, klimek

Reviewed By: bkramer

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D36397

llvm-svn: 310818
2017-08-14 08:17:24 +00:00
Simon Pilgrim 7c87ebf3cd Fix Wdocumentation warning - typo in argument list. NFCI.
llvm-svn: 310783
2017-08-12 18:50:53 +00:00
Aaron Ballman 9253e89e47 Enable exceptions for this test case to speculatively fix the build bots.
Hopefully corrects: http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/builds/15666

llvm-svn: 310732
2017-08-11 16:46:45 +00:00
Aaron Ballman a3274e5443 Add hicpp-exception-baseclass to the HIC++ module.
This enforces that throwing an exception in C++ requires that exception to inherit from std::exception.

Patch by Jonas Toth.

llvm-svn: 310727
2017-08-11 16:31:51 +00:00
Aaron Ballman 6c2920a30a Implement hicpp-braces-around-statements as an alias to readability-braces-around-statements.
Patch by Jonas Toth.

llvm-svn: 310707
2017-08-11 12:12:36 +00:00
Yan Wang b21739f988 [clang-tidy] Fix for buildbot.
Summary:
Fix an issue for windows.

Differential Revision: https://reviews.llvm.org/D35372

llvm-svn: 310669
2017-08-10 22:09:22 +00:00
Reid Kleckner 8d4d57035f Revert "[clang-tidy] Refactor the code and add a close-on-exec check on memfd_create() in Android module."
This reverts commit r310630.

The new code broke on Windows and was untested. On Linux, it was
selecting the "int" overload of operator<<, which definitely does not
print the right thing when fed a "Mode" char.

llvm-svn: 310661
2017-08-10 21:21:15 +00:00
Yan Wang acd70d3c6b [clang-tidy] Fix a buildbot.
Fix format in ReleaseNotes.rst.

llvm-svn: 310643
2017-08-10 18:19:40 +00:00
Yan Wang d61c2a18cb [clang-tidy] Refactor the code and add a close-on-exec check on memfd_create() in Android module.
Summary:
1. Refactor the structure of the code by adding a base class for all close-on-exec checks, which implements most of the needed functions.
2. memfd_create() is better to set MFD_CLOEXEC flag to avoid file descriptor leakage.

Reviewers: alexfh, aaron.ballman, hokein

Reviewed By: alexfh, hokein

Subscribers: Eugene.Zelenko, chh, cfe-commits, srhines, mgorny, JDevlieghere, xazax.hun

Tags: #clang-tools-extra

Differential Revision: https://reviews.llvm.org/D35372

llvm-svn: 310630
2017-08-10 17:18:10 +00:00
Gabor Horvath 0b16c10de3 [clang-tidy] Add integer division check
Patch by: Reka Nikolett Kovacs

Differential Revision: https://reviews.llvm.org/D35932

llvm-svn: 310589
2017-08-10 13:30:30 +00:00
Alexander Kornienko 83eae8724e [clang-tidy] Updated docs and release notes for r310584
llvm-svn: 310587
2017-08-10 12:54:05 +00:00
Alexander Kornienko a4d94689fc [clang-tidy] Add a test.
llvm-svn: 310586
2017-08-10 12:38:46 +00:00
Alexander Kornienko 57fd153c46 [clang-tidy] Enable test for http://llvm.org/PR26228
llvm-svn: 310585
2017-08-10 12:24:52 +00:00
Alexander Kornienko ff6b2af499 [clang-tidy] Add modernize-use-emplace.IgnoreImplicitConstructors option
llvm-svn: 310584
2017-08-10 12:19:05 +00:00
Haojian Wu b7a3856538 [clang-tidy] Fix an error in the doc.
llvm-svn: 310578
2017-08-10 10:15:48 +00:00
Haojian Wu 75de614684 [clang-tidy] add forwarders in the aliased checks from hicpp module
Summary: Adds redirections notes and the actual redirections in the documentation for hicpp

Patch by: Jonas Toth

Reviewers: aaron.ballman, hokein, alexfh

Reviewed By: aaron.ballman, hokein

Subscribers: JDevlieghere, xazax.hun

Differential Revision: https://reviews.llvm.org/D36355

llvm-svn: 310577
2017-08-10 10:12:31 +00:00
Gabor Horvath 875ccc5864 [clang-tidy] Fix a check-fixes line
llvm-svn: 310560
2017-08-10 09:29:39 +00:00
Gabor Horvath aa660b5149 [clang-tidy] Minor documentation improvement
Patch by: Lilla Barancsuk

llvm-svn: 310559
2017-08-10 09:13:26 +00:00
Haojian Wu 6e596e2938 [clang-tidy] Add missing doc in cppcoreguidelines-c-copy-assignment-signature check.
llvm-svn: 310558
2017-08-10 09:12:32 +00:00
Benjamin Kramer 1436192d68 [clang-tidy] Don't compute the edit distance if it's over the threshold.
No functional change intended.

llvm-svn: 310532
2017-08-09 22:09:29 +00:00
Haojian Wu be5d4487b4 [clang-tidy] Fix another crash in make-unique check.
Summary:
The crash happens when calling `reset` method without any preceding
operation like "->" or ".", this could happen in a subclass of the
"std::unique_ptr".

Reviewers: alexfh

Reviewed By: alexfh

Subscribers: JDevlieghere, xazax.hun, cfe-commits

Differential Revision: https://reviews.llvm.org/D36452

llvm-svn: 310496
2017-08-09 17:03:42 +00:00
Alexander Kornienko 9b8df6ae02 [clang-tidy] Ignore newlines in checks list
This is a follow up to https://reviews.llvm.org/D30567 where I overlooked that
LLVM YAML parser doesn't support multiline literal folding.

llvm-svn: 310491
2017-08-09 16:00:31 +00:00
Ilya Biryukov c22824a6fc [clangd] Fixed a bug in make_tagged.
It accidentally std::move'd from Value parameter if it deduced to an
l-value ref.

llvm-svn: 310470
2017-08-09 12:55:13 +00:00
Gabor Horvath 40b6512d9e [clang-tidy] Add new readability non-idiomatic static access check
Patch by: Lilla Barancsuk

Differential Revision: https://reviews.llvm.org/D35937

llvm-svn: 310371
2017-08-08 15:33:48 +00:00
Alexander Kornienko f1a6552a95 [clang-tidy] 'implicit cast' -> 'implicit conversion'
Summary:
This patch renames checks, check options and changes messages to use correct
term "implicit conversion" instead of "implicit cast" (which has been in use in
Clang AST since ~10 years, but it's still technically incorrect w.r.t. C++
standard).

  * performance-implicit-cast-in-loop -> performance-implicit-conversion-in-loop
  * readability-implicit-bool-cast -> readability-implicit-bool-conversion
    - readability-implicit-bool-cast.AllowConditionalIntegerCasts ->
      readability-implicit-bool-conversion.AllowIntegerConditions
    - readability-implicit-bool-cast.AllowConditionalPointerCasts ->
      readability-implicit-bool-conversion.AllowPointerConditions

Reviewers: hokein, jdennett

Reviewed By: hokein

Subscribers: mgorny, JDevlieghere, xazax.hun, cfe-commits

Differential Revision: https://reviews.llvm.org/D36456

llvm-svn: 310366
2017-08-08 14:53:52 +00:00
Florian Gross fa857b174d [clang-tidy] Added clang-tidy test cases related to rL310095
Differential Revision: https://reviews.llvm.org/D36308

llvm-svn: 310096
2017-08-04 19:01:56 +00:00
Haojian Wu 6a030d1bbf [clang-tidy] Add missing documents for "IgnoreMacros" option.
llvm-svn: 310051
2017-08-04 11:25:05 +00:00
Haojian Wu 115b707584 [clang-tidy] Ignore macros in make-unique check.
Summary:
The check doesn't fully support smart-ptr usages inside macros, which
may cause incorrect fixes, or even crashes, ignore them for now.

Reviewers: alexfh

Reviewed By: alexfh

Subscribers: JDevlieghere, xazax.hun, cfe-commits

Differential Revision: https://reviews.llvm.org/D36264

llvm-svn: 310050
2017-08-04 11:18:00 +00:00
Haojian Wu dc1c7610b8 [clang-tidy] Support initializer-list constructor cases in modernize-make-unique.
Reviewers: alexfh

Reviewed By: alexfh

Subscribers: malcolm.parsons, JDevlieghere, xazax.hun, cfe-commits

Differential Revision: https://reviews.llvm.org/D36016

llvm-svn: 310035
2017-08-04 08:07:05 +00:00
Michal Gorny c1a0c00d50 [test] Fix clang library dir in LD_LIBRARY_PATH For stand-alone build
Prepend the clang library directory (determined using SHLIBDIR, alike
in clang) to the LD_LIBRARY_PATH to ensure that just-built clang
libraries will be used instead of a previous installed version.

When a stand-alone build is performed, LLVM_LIBS_DIR contains the path
to installed LLVM library directory. The same directory frequently
contains a previously installed version of clang. SHLIBDIR, on the other
hand, is always the build-tree directory, and therefore contains
the freshly built clang libraries.

In a non-stand-alone build, both paths will be the same and therefore
including them both will not cause any issues.

Differential Revision: https://reviews.llvm.org/D30155

llvm-svn: 309979
2017-08-03 19:41:33 +00:00
NAKAMURA Takumi 55aebd689e ClangdTests: Try to unbreak the case CLANG_DEFAULT_CXX_STDLIB=libc++.
llvm-svn: 309936
2017-08-03 13:30:43 +00:00
Manuel Klimek 7b9c117b82 Adapt clang-tidy checks to changing semantics of hasDeclaration.
Differential Revision: https://reviews.llvm.org/D36154

llvm-svn: 309810
2017-08-02 13:13:11 +00:00
Ilya Biryukov 574b753bfd [clangd] Run clang-format on all clangd sources. NFC.
llvm-svn: 309801
2017-08-02 09:08:39 +00:00
Ilya Biryukov 4ca7d85d2a [clangd] Capitalized descriptions of clangd options. NFC.
To follow the style of other options shown on `clangd -help`.

llvm-svn: 309800
2017-08-02 08:53:48 +00:00
Ilya Biryukov 6e1f3b1c90 [clangd] Fix more MSVC compilation failures.
It turns out MSVC does not allow non-copyable classes in std::future
and std::promise template arguments.

llvm-svn: 309720
2017-08-01 18:27:58 +00:00
Ilya Biryukov e925caf416 [clangd] Fixed MSVC compilation failures.
llvm-svn: 309705
2017-08-01 17:17:37 +00:00
Ilya Biryukov 02d5870de3 [clangd] Rewrote AST and Preamble management.
Summary: The new implementation allows code completion that never waits for AST.

Reviewers: bkramer, krasimir, klimek

Reviewed By: bkramer

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D36133

llvm-svn: 309696
2017-08-01 15:51:38 +00:00
Malcolm Parsons 2f96843396 [clang-tidy] Handle anonymous structs/unions in member init checks.
Use getAnyMember() instead of getMember() to avoid crash on anonymous
structs/unions.
Don't warn about initializing members of an anonymous union.

Fixes PR32966.

Reviewed by alexfh.

llvm-svn: 309668
2017-08-01 09:54:05 +00:00
Ilya Biryukov ed99e4c5b2 [clangd] Allow to get vfs::FileSystem used inside codeComplete.
Summary: This is useful for managing lifetime of VFS-based caches.

Reviewers: bkramer, krasimir

Reviewed By: bkramer

Subscribers: klimek, cfe-commits

Differential Revision: https://reviews.llvm.org/D36095

llvm-svn: 309585
2017-07-31 17:09:29 +00:00
Ilya Biryukov a2e7ca99e0 [clangd] Add ':' to completion trigger characters.
Summary:
Without it we don't get completion requests from VSCode after
nested name qualifiers (e.g. after 'std::').

Reviewers: krasimir, bkramer

Reviewed By: krasimir

Subscribers: klimek, cfe-commits

Differential Revision: https://reviews.llvm.org/D35986

llvm-svn: 309550
2017-07-31 09:27:52 +00:00
Alexander Shaposhnikov b687fdda29 [clang-reorder-fields] Emit warning when reordering breaks member init list dependencies
This diff adds a warning emitted by clang-reorder-fields 
when reordering breaks dependencies in the initializer list.

Patch by Sam Conrad!

Differential revision: https://reviews.llvm.org/D35972

llvm-svn: 309505
2017-07-30 06:43:03 +00:00
Alexander Kornienko f288ace639 [clang-tidy] Expand readability-redundant-function-ptr-dereference test
llvm-svn: 309380
2017-07-28 12:46:08 +00:00
Alexander Kornienko f3321c5f68 [clang-tidy] readability-redundant-declaration: ignore friends and macros
llvm-svn: 309379
2017-07-28 12:46:02 +00:00
Ilya Biryukov 4dafd14d1a [clangd] Workaround for a test failure on Windows.
Previous workaround (r308959) didn't account for a case when system drive
letter is not 'C:'.

llvm-svn: 309378
2017-07-28 12:25:51 +00:00
Ilya Biryukov de46274d7b [clangd] Don't reverse priorities of completion items.
Summary: Current algorithm incorrectly provides completion results in a reverse order.

Reviewers: krasimir, bkramer

Reviewed By: krasimir

Subscribers: cfe-commits, klimek

Differential Revision: https://reviews.llvm.org/D35950

llvm-svn: 309295
2017-07-27 17:43:07 +00:00
Felix Berger 603ea2df2a [clang-tidy] Do not issue fixit for explicit template specializations
Summary:

Do not issue fixit in UnnecessaryValueParamCheck if the function is an explicit template specialization as this could cause build breakages.

Reviewers: alexfh

Subscribers: JDevlieghere, xazax.hun, cfe-commits

Differential Revision: https://reviews.llvm.org/D35718

llvm-svn: 309067
2017-07-26 00:45:41 +00:00
Kevin Funk fe284e4616 [clang-tidy] Fixup clang-apply-replacements/invalid-files test
llvm-svn: 308975
2017-07-25 14:39:08 +00:00
Kevin Funk bb5cfb5dd3 [clang-tidy] clang-apply-replacements: Don't insert null entry
Summary:
[clang-tidy] clang-apply-replacements: Don't insert null entry

Fix crash when running clang-apply-replacements on YML files which
contain an invalid file path. Make sure we never add a nullptr into the
map. The previous code started adding nullptr to the map after the first
warnings via errs() has been emitted.

Backtrace:
```
Starting program:
/home/kfunk/devel/build/llvm/bin/clang-apply-replacements /tmp/tmpIqtp7m
[Thread debugging using libthread_db enabled]
Using host libthread_db library
"/lib/x86_64-linux-gnu/libthread_db.so.1".
Described file '.moc/../../../../../../src/qt5.8/qtremoteobjects/src/remoteobjects/qremoteobjectregistrysource_p.h' doesn't exist. Ignoring...
...

Program received signal SIGSEGV, Segmentation fault.
main (argc=<optimized out>, argv=<optimized out>) at /home/kfunk/devel/src/llvm/tools/clang/tools/extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:262
(gdb) p FileAndReplacements.first
$1 = (const clang::FileEntry *) 0x0
(gdb)
```

Added tests.

Before patch:

```
******************** TEST 'Clang Tools :: clang-apply-replacements/invalid-files.cpp' FAILED ********************
Script:
--
mkdir -p /home/kfunk/devel/build/llvm/tools/clang/tools/extra/test/clang-apply-replacements/Output/Inputs/invalid-files
clang-apply-replacements /home/kfunk/devel/build/llvm/tools/clang/tools/extra/test/clang-apply-replacements/Output/Inputs/invalid-files
ls -1 /home/kfunk/devel/build/llvm/tools/clang/tools/extra/test/clang-apply-replacements/Output/Inputs/invalid-files | FileCheck /home/kfunk/devel/src/llvm/tools/clang/tools/extra/test/clang-apply-replacements/invalid-files.cpp --check-prefix=YAML
--
Exit Code: 139

Command Output (stderr):
--
Described file 'idonotexist.h' doesn't exist. Ignoring...
/home/kfunk/devel/build/llvm/tools/clang/tools/extra/test/clang-apply-replacements/Output/invalid-files.cpp.script: line 4:  9919 Segmentation fault      clang-apply-replacements /home/kfunk/devel/build/llvm/tools/clang/tools/extra/test/clang-apply-   replacements/Output/Inputs/invalid-files

--
```

After Patch:

```
PASS: Clang Tools :: clang-apply-replacements/invalid-files.cpp (5 of 6)
```

Reviewers: alexfh, yawanng

Reviewed By: alexfh

Subscribers: cfe-commits, klimek, JDevlieghere, xazax.hun

Tags: #clang-tools-extra

Differential Revision: https://reviews.llvm.org/D35194

llvm-svn: 308974
2017-07-25 14:28:16 +00:00
Krasimir Georgiev e4130d52da [clangd] Reuse compile commands during reparse
Summary:
Previously we always queried the compilation database and discarded the results
if the file was already opened.

Reviewers: ilya-biryukov

Reviewed By: ilya-biryukov

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D35825

llvm-svn: 308970
2017-07-25 11:37:43 +00:00
Ilya Biryukov e98fa38292 [clangd] Workaround Windows test failures.
To properly fix this, Unix-specific paths should not be used when
running tests on Windows.

llvm-svn: 308959
2017-07-25 09:31:51 +00:00
Gabor Horvath 97c8e09790 [clang-tidy] Handle incomplete types in bugprone-undefined-memory-manipulation
check

Patch by: Reka Nikolett Kovacs

Differential Revision: https://reviews.llvm.org/D35790

llvm-svn: 308954
2017-07-25 06:52:08 +00:00
NAKAMURA Takumi 3545ee5f3f clangDaemon: Update libdeps in r308738.
llvm-svn: 308807
2017-07-21 23:48:26 +00:00
Ilya Biryukov 04db368a3f [clangd] Replace ASTUnit with manual AST management.
Summary:
This refactoring does not aim to introduce any significant changes to
the behaviour of clangd to keep the change as simple as possible.

Reviewers: klimek, krasimir, bkramer

Reviewed By: krasimir

Subscribers: malaperle, cfe-commits

Tags: #clang-tools-extra

Differential Revision: https://reviews.llvm.org/D35406

llvm-svn: 308738
2017-07-21 13:29:29 +00:00
Alexander Kornienko 16300e1265 [clang-tidy] Add option to export fixes to run-clang-tidy.py
This patch adds the option to keep the list of proposed fixes even though they
should not be applied.

This allows to detect possible fixes using the parallelised run-clang-tidy.py
and apply them using clang-apply-replacements at a later time.
Essentially the patch causes the individual temporary yaml files by the parallel
clang-tidy instances to be merged into one user-defined file.

Patch by Michael F. Herbst!
Differential revision: https://reviews.llvm.org/D31326

llvm-svn: 308726
2017-07-21 10:31:26 +00:00
Ilya Biryukov ba3bd7ce3e [clangd] Specified --gcc-toolchain explicitly in VFS test.
In order to avoid platform-specific configuration quirks.
(Possible fix for https://bugs.llvm.org/show_bug.cgi?id=33842)

llvm-svn: 308721
2017-07-21 08:20:47 +00:00
Alexander Shaposhnikov eaf833ca2b [clang-tools-extra] Add support for plain C structs in clang-reorder-fields
This diff updates the tool clang-reorder-fields
to enable reordering of fields of plain C structs.

Test plan: make check-all

Differential revision: https://reviews.llvm.org/D35329

llvm-svn: 308678
2017-07-20 21:41:20 +00:00
Alexander Kornienko deda4b2ae0 [clang-tidy] s/1/true/, NFC
llvm-svn: 308621
2017-07-20 14:56:52 +00:00
Alexander Kornienko b1c7432117 [clang-tidy] Unify the way IncludeStyle and HeaderFileExtesions options are used
llvm-svn: 308605
2017-07-20 12:02:03 +00:00
Krasimir Georgiev 0dcb48eab1 [clangd] Allow specifying -resource-dir
Summary: This patch allows clangd to specify its -resource-dir.

Reviewers: bkramer, klimek

Reviewed By: bkramer

Subscribers: cfe-commits

Tags: #clang-tools-extra

Differential Revision: https://reviews.llvm.org/D35617

llvm-svn: 308486
2017-07-19 15:43:35 +00:00
Hans Wennborg 1298fd907c Clear release notes for 6.0.0
llvm-svn: 308479
2017-07-19 14:15:27 +00:00
Hans Wennborg 25aedcc7b2 Bump docs version to 6.0
llvm-svn: 308467
2017-07-19 13:51:07 +00:00
Manuel Klimek 89970d46da Add autoload cookies for clang-include-fixer lisp functions.
Annotate all public functions with the autoload magic cookie so that
update-directory-autoloads will find them.

Patch by Brendan O'Dea.

llvm-svn: 308290
2017-07-18 10:15:07 +00:00
Faisal Vali cb8e01acd0 [NFC] Update function call names as changed in MacroInfo that should refer to Parameters (as opposed to Arguments).
This syncs them up with clang commit r308190

Thanks!

llvm-svn: 308191
2017-07-17 17:20:57 +00:00
Alexander Kornienko 31176afd16 [clang-tidy] Add modernize-use-bool-literals.IgnoreMacros option
llvm-svn: 308181
2017-07-17 14:43:06 +00:00
NAKAMURA Takumi 8de96ca8bc ClangApplyReplacementsTests: Add clangBasic in libdeps.
r308015 introduced clangBasic to instantiate Diagnostics &c,

llvm-svn: 308085
2017-07-15 06:32:10 +00:00
Gabor Horvath 5aae773d86 [clang-tidy] Minor documentation fix. NFC.
llvm-svn: 308022
2017-07-14 12:31:21 +00:00
Gabor Horvath 46a9db45c6 [clang-tidy] Add bugprone-undefined-memory-manipulation check
Patch by: Reka Nikolett Kovacs

Differential Revision: https://reviews.llvm.org/D35051

llvm-svn: 308021
2017-07-14 12:20:19 +00:00
Gabor Horvath 829e75a037 [clang-tidy] Add bugprone-suspicious-memset-usage check
Created new module bugprone and placed the check in that.

Finds memset() calls with potential mistakes in their arguments.
Replaces and extends the existing google-runtime-memset-zero-length check.

Cases covered:
* Fill value is a character '0'. Integer 0 might have been intended.
* Fill value is out of char range and gets truncated.
* Byte count is zero. Potentially swapped with the fill value argument.

Patch by: Reka Nikolett Kovacs

Differential Revision: https://reviews.llvm.org/D32700

llvm-svn: 308020
2017-07-14 12:15:55 +00:00
Alexander Kornienko 8b4fcb7197 [Clang-Tidy] Preserve Message, FileOffset, FilePath in Clang-Tidy YAML output
Summary:
To get properly integration Clang-Tidy with CLion IDE, next things were implemented:
* Preserve `Message`, `FileOffset`, `FilePath` in the clang-tidy output.
* Export all diagnostics, not just the ones with fixes
* Test-cases

Reviewers: alexfh, ilya-biryukov

Subscribers: mgorny, JDevlieghere, xazax.hun, cfe-commits

Tags: #clang-tools-extra

Patch by Vladimir Plyashkun!

Differential Revision: https://reviews.llvm.org/D35349

llvm-svn: 308015
2017-07-14 10:37:46 +00:00
NAKAMURA Takumi 02d34adfd8 clang-tools-extra/test/clang-tidy/performance-unnecessary-value-param-header.cpp: Resolve flakiness in the test.
Tests would go flaky if;
1. Using %T (not %t)
2. Put a file with common name like header.h into %T
3. Other tests (eg. misc-unused-parameters.cpp) are doing as well

We should avoid using %T unless it really makes sense.

llvm-svn: 307876
2017-07-13 02:06:30 +00:00
Yan Wang b38045d02e [clang-tidy] Add a new Android check "android-cloexec-socket"
Summary: socket() is better to include SOCK_CLOEXEC in its type argument to avoid the file descriptor leakage.

Reviewers: chh, Eugene.Zelenko, alexfh, hokein, aaron.ballman

Reviewed By: chh, alexfh

Subscribers: srhines, mgorny, JDevlieghere, xazax.hun, cfe-commits

Tags: #clang-tools-extra

Differential Revision: https://reviews.llvm.org/D34913

llvm-svn: 307818
2017-07-12 17:43:36 +00:00
Haojian Wu a9a1b403bc [clang-tidy] Ignore blank spaces between cast's ")" and its sub expr.
Summary:
Before the change:

`auto i = (Enum) 5;` => `auto i = static_cast<Enum>( 5);`

After the change:

`auto i = (Enum) 5;` => `auto i = static_cast<Enum>(5);`

Reviewers: alexfh

Reviewed By: alexfh

Subscribers: JDevlieghere, xazax.hun, cfe-commits

Differential Revision: https://reviews.llvm.org/D31700

llvm-svn: 307812
2017-07-12 16:38:59 +00:00
Chih-Hung Hsieh 98a6b3ea87 [clang-tidy] add regression test to performance-unnecessary-value-param
This test shows the problem in https://bugs.llvm.org/show_bug.cgi?id=33734

Differential Revision: https://reviews.llvm.org/D35225

llvm-svn: 307810
2017-07-12 16:27:00 +00:00
Gabor Horvath 5314521328 [clang-tidy] Add new modernize use unary assert check
Patch by: Lilla Barancsuk

Differential Revision: https://reviews.llvm.org/D35257

llvm-svn: 307791
2017-07-12 13:43:35 +00:00
Alexander Kornienko c2dcdd9984 [clang-tidy] add_new_check.py updates ReleaseNotes.rst now
llvm-svn: 307787
2017-07-12 13:13:41 +00:00
Marc-Andre Laperle 9647a28fb7 [clangd] Fix Go to Definition not working in VSCode extension
Summary:
The URI conversion logic was returning 'undefined' when going from server to
VSCode which broke the Go to Definition functionality.

Reviewers: krasimir

Reviewed By: krasimir

Subscribers: cfe-commits

Tags: #clang-tools-extra

Differential Revision: https://reviews.llvm.org/D35215

llvm-svn: 307715
2017-07-11 21:26:18 +00:00
Reid Kleckner f84c2fc51a Fix clang-tidy diagnostic.cpp test on Windows
llvm-svn: 307701
2017-07-11 20:22:17 +00:00
Alexander Kornienko 9e3abbd5a5 [clang-tidy] Extend diagnostics test.
* test that no diagnostics are redirected to stderr
  * test that a file-based compilation database is not picked up when the
    command line after -- contains an error

llvm-svn: 307661
2017-07-11 15:23:05 +00:00
Philipp Stephani d7901b29ce Use new command replace-buffer-contents if available
Reviewers: klimek

Reviewed By: klimek

Differential Revision: https://reviews.llvm.org/D35211

llvm-svn: 307635
2017-07-11 09:01:58 +00:00
Petr Hosek fe0e145aed [CMake] Use tools template for clangd and modularize
This makes them usable as distribution components in the build.

Differential Revision: https://reviews.llvm.org/D35017

llvm-svn: 307601
2017-07-11 00:18:07 +00:00
Philipp Stephani 7ac5d59554 Improve error message when run from a buffer that doesn't visit a file
Summary: In this case, users currently get a confusing type error.  Make the error message more obvious.

Reviewers: klimek

Reviewed By: klimek

Differential Revision: https://reviews.llvm.org/D35197

llvm-svn: 307535
2017-07-10 13:49:18 +00:00
Alexander Kornienko 91dafe09b0 [clang-tidy] Fix modernize-use-override incorrect replacement
Summary:
For the following code: `modernize-use-override` generates a replacement with incorrect location.
```
struct IntPair
{
  int first, second;
};

struct A
{
  virtual void il(IntPair);
};

struct B : A
{
  void il(IntPair p = {1, (2 + 3)}) {};
  // Generated Fixit: void il(IntPair p = override {1, (2 + 3)}) {};
  // Should be: void il(IntPair p = {1, (2 + 3)}) override {};
};
```
This fixes that and adds a unit test.

Reviewers: alexfh, aaron.ballman, hokein

Reviewed By: alexfh

Subscribers: JDevlieghere, xazax.hun, cfe-commits

Tags: #clang-tools-extra

Patch by Victor Gao!

Differential Revision: https://reviews.llvm.org/D35078

llvm-svn: 307379
2017-07-07 10:15:24 +00:00
Krasimir Georgiev c2a16a3567 [clangd] Add support for per-file extra flags
Summary:
This patch adds the ability to specify user-defined extra flags per opened file
through the LSP layer. This is a non-standard extension to the protocol.
I've already created a feature request about it for upstream lsp:
https://github.com/Microsoft/language-server-protocol/issues/255

The particular use-case is ycmd, which has a python script for figuring out
extra flags per file:
https://github.com/Valloric/ycmd#flagsforfile-filename-kwargs-

Reviewers: ilya-biryukov, klimek, bkramer

Reviewed By: ilya-biryukov

Subscribers: cfe-commits

Tags: #clang-tools-extra

Differential Revision: https://reviews.llvm.org/D34947

llvm-svn: 307241
2017-07-06 08:44:54 +00:00
Haojian Wu 040c0f96cc [clang-tidy] Add "MakeSmartPtrFunction" option to modernize-make-shared/unique checks.
Reviewers: alexfh, aaron.ballman

Reviewed By: alexfh

Subscribers: JDevlieghere, Eugene.Zelenko, xazax.hun, cfe-commits

Differential Revision: https://reviews.llvm.org/D34206

llvm-svn: 307130
2017-07-05 07:49:00 +00:00
NAKAMURA Takumi 7a0fb798ae ClangdServer.cpp: Suppress a warning. [-Wunused-lambda-capture]
llvm-svn: 307068
2017-07-04 12:12:14 +00:00
Jonas Devlieghere b63eb61fc4 [clang-tidy] Resolve cppcoreguidelines-pro-type-member-init false positive
Summary: https://bugs.llvm.org/show_bug.cgi?id=33557

Reviewers: Eugene.Zelenko, alexfh, aaron.ballman, hokein

Reviewed By: aaron.ballman, hokein

Subscribers: cfe-commits, nemanjai, xazax.hun, kbarton

Tags: #clang-tools-extra

Differential Revision: https://reviews.llvm.org/D34932

llvm-svn: 307040
2017-07-03 16:46:46 +00:00
Ilya Biryukov 53d69e329b [clangd] Add -ffreestanding on VFS tests.
Summary:
They don't provide proper gcc installations and may fail on implicit
<stdc-predef.h> include.

Reviewers: klimek, krasimir, bkramer

Reviewed By: krasimir

Subscribers: klimek, cfe-commits

Tags: #clang-tools-extra

Differential Revision: https://reviews.llvm.org/D34936

llvm-svn: 307025
2017-07-03 14:46:03 +00:00
Richard Smith 02c3baaad2 Fix ODR violations due to abuse of LLVM_YAML_IS_(FLOW_)?SEQUENCE_VECTOR
This is a short-term fix for PR33650 aimed to get the modules build bots green again.

Remove all the places where we use the LLVM_YAML_IS_(FLOW_)?SEQUENCE_VECTOR
macros to try to locally specialize a global template for a global type. That's
not how C++ works.

Instead, we now centrally define how to format vectors of fundamental types and
of string (std::string and StringRef). We use flow formatting for the former
cases, since that's the obvious right thing to do; in the latter case, it's
less clear what the right choice is, but flow formatting is really bad for some
cases (due to very long strings), so we pick block formatting. (Many of the
cases that were using flow formatting for strings are improved by this change.)

Other than the flow -> block formatting change for some vectors of strings,
this should result in no functionality change.

Differential Revision: https://reviews.llvm.org/D34907

Corresponding LLVM change is r306878.

llvm-svn: 306879
2017-06-30 20:57:16 +00:00
Alex Lorenz bf38b4effc Move ClassReplacements.cpp test from clang-rename tests to the
clang-apply-replacements tests

The ClassReplacements.cpp test in the clang-rename tests uses
clang-apply-replacements. I moved it back to the clang-tools-extra repository
for now to ensure that the clang-rename tests can pass when clang is compiled
without clang-tools-extra.

llvm-svn: 306843
2017-06-30 16:58:36 +00:00
Alex Lorenz 4abbd92bf4 [refactor] Move clang-rename into the clang repository
The core engine of clang-rename will be used for local and global renames in the
new refactoring engine, as mentioned in
http://lists.llvm.org/pipermail/cfe-dev/2017-June/054286.html.

The clang-rename tool is still supported but might get deprecated in the future.

Differential Revision: https://reviews.llvm.org/D34696

llvm-svn: 306840
2017-06-30 16:36:09 +00:00
Benjamin Kramer 582d0c872a Revert "Modify test so that it looks for patterns in stderr as well"
This reverts commit r303735. No longer needed after r306822 sends the
diagnostics to the proper output again.

llvm-svn: 306823
2017-06-30 13:23:24 +00:00
Sylvestre Ledru f85b38f25e Fix some typos in the doc
llvm-svn: 306750
2017-06-29 22:26:06 +00:00