hanchenye-llvm-project/clang-tools-extra
Haojian Wu b780c59b93 [clang-tidy] Fix a false positive on modernize-use-nullptr check.
Summary:
The false positive happens on two neighbour CXXDefaultArgExpr AST nodes.
like below:

```
CXXFunctionalCastExpr 0x85c9670 <col:7, col:23> 'struct ZZ' functional cast to struct ZZ <ConstructorConversion>
 `-CXXConstructExpr 0x85c9518 <col:7, col:23> 'struct ZZ' 'void (uint64, const uint64 *)'
   |-CallExpr 0x85a0a90 <col:10, col:22> 'uint64':'unsigned long long'
   | |-ImplicitCastExpr 0x85a0a78 <col:10> 'uint64 (*)(uint64)' <FunctionToPointerDecay>
   | | `-DeclRefExpr 0x85a09f0 <col:10> 'uint64 (uint64)' lvalue Function 0x85a06a0 'Hash' 'uint64 (uint64)'
   | `-CXXDefaultArgExpr 0x85a0ac8 <<invalid sloc>> 'uint64':'unsigned long long'
   `-CXXDefaultArgExpr 0x85c94f8 <<invalid sloc>> 'const uint64 *'
```

For each particular CXXDefaultArgExpr node, we need to reset
FirstSubExpr, otherwise FirstSubExpr will refer to an incorrect expr.

Reviewers: alexfh

Reviewed By: alexfh

Subscribers: JDevlieghere, cfe-commits

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

llvm-svn: 296479
2017-02-28 15:29:52 +00:00
..
change-namespace [change-namespace] trying to fix windows buildbot failure. 2017-02-28 10:00:15 +00:00
clang-apply-replacements Update tools to use new getStyle API 2017-01-17 00:13:32 +00:00
clang-move [clang-move] Extend clang-move to support moving global variable. 2017-02-27 13:19:13 +00:00
clang-query modernize-use-auto NFC fixes 2016-12-14 15:29:23 +00:00
clang-rename Fix some Clang-tidy modernize-use-default and Include What You Use warnings; other minor fixes (NFC). 2016-11-29 18:24:01 +00:00
clang-reorder-fields
clang-tidy [clang-tidy] Fix a false positive on modernize-use-nullptr check. 2017-02-28 15:29:52 +00:00
clang-tidy-vs Remove 'misc-pointer-and-integral-operation' clang-tidy check. The only cases 2016-10-21 21:50:28 +00:00
clangd [clangd] Make clangd install to bin 2017-02-27 21:40:35 +00:00
docs Misspelled checker description (argument comment) 2017-02-28 14:13:26 +00:00
include-fixer [find-all-symbols] Implement operator== for SymbolAndSignals and SymbolInfo::Signals. 2017-02-28 10:13:26 +00:00
modularize Fix memory leak by using unique_ptr 2017-02-11 05:25:21 +00:00
pp-trace modernize-use-auto NFC fixes 2016-12-14 15:29:23 +00:00
test [clang-tidy] Fix a false positive on modernize-use-nullptr check. 2017-02-28 15:29:52 +00:00
tool-template [clang-tools-extra] Format sources with clang-format. NFC. 2016-11-08 07:50:19 +00:00
unittests [include-fixer] Add usage count to find-all-symbols. 2017-02-28 08:13:15 +00:00
.arcconfig
.gitignore
CMakeLists.txt Add a prototype for clangd 2017-02-07 10:28:20 +00:00
CODE_OWNERS.TXT
LICENSE.TXT
README.txt

README.txt

//===----------------------------------------------------------------------===//
// Clang Tools repository
//===----------------------------------------------------------------------===//

Welcome to the repository of extra Clang Tools.  This repository holds tools
that are developed as part of the LLVM compiler infrastructure project and the
Clang frontend.  These tools are kept in a separate "extra" repository to
allow lighter weight checkouts of the core Clang codebase.

This repository is only intended to be checked out inside of a full LLVM+Clang
tree, and in the 'tools/extra' subdirectory of the Clang checkout.

All discussion regarding Clang, Clang-based tools, and code in this repository
should be held using the standard Clang mailing lists:
  http://lists.llvm.org/mailman/listinfo/cfe-dev

Code review for this tree should take place on the standard Clang patch and
commit lists:
  http://lists.llvm.org/mailman/listinfo/cfe-commits

If you find a bug in these tools, please file it in the LLVM bug tracker:
  http://llvm.org/bugs/