]> granicus.if.org Git - clang/commit
[AST] Store "UsesADL" information in CallExpr.
authorEric Fiselier <eric@efcs.ca>
Wed, 12 Dec 2018 21:50:55 +0000 (21:50 +0000)
committerEric Fiselier <eric@efcs.ca>
Wed, 12 Dec 2018 21:50:55 +0000 (21:50 +0000)
commitf89e5ce8508a67f732e550b8313fa7d2f889ee3f
tree48b0454b27727986397a0928e677f623fe9ebd26
parent58419897ad2cb6c4a572a0a03705a462e3b07a08
[AST] Store "UsesADL" information in CallExpr.

Summary:
Currently the Clang AST doesn't store information about how the callee of a CallExpr was found. Specifically if it was found using ADL.

However, this information is invaluable to tooling. Consider a tool which renames usages of a function. If the originally CallExpr was formed using ADL, then the tooling may need to additionally qualify the replacement.
Without information about how the callee was found, the tooling is left scratching it's head. Additionally, we want to be able to match ADL calls as quickly as possible, which means avoiding computing the answer on the fly.

This patch changes `CallExpr` to store whether it's callee was found using ADL. It does not change the size of any AST nodes.

Reviewers: fowles, rsmith, klimek, shafik

Reviewed By: rsmith

Subscribers: aaron.ballman, riccibruno, calabrese, titus, cfe-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@348977 91177308-0d34-0410-b5e6-96231b3b80d8
19 files changed:
docs/LibASTMatchersReference.html
include/clang/AST/Expr.h
include/clang/AST/ExprCXX.h
include/clang/AST/Stmt.h
include/clang/ASTMatchers/ASTMatchers.h
include/clang/Sema/Overload.h
include/clang/Sema/Sema.h
lib/AST/ASTDumper.cpp
lib/AST/ASTImporter.cpp
lib/AST/Expr.cpp
lib/ASTMatchers/Dynamic/Registry.cpp
lib/Sema/SemaExpr.cpp
lib/Sema/SemaOverload.cpp
lib/Serialization/ASTReaderStmt.cpp
lib/Serialization/ASTWriterStmt.cpp
test/AST/ast-dump-expr.cpp
test/Import/call-expr/Inputs/F.cpp [new file with mode: 0644]
test/Import/call-expr/test.cpp [new file with mode: 0644]
unittests/ASTMatchers/ASTMatchersNodeTest.cpp