aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Tooling/Syntax/BuildTree.cpp
diff options
context:
space:
mode:
authorHaojian Wu <hokein.wu@gmail.com>2021-02-18 10:09:02 +0100
committerHaojian Wu <hokein.wu@gmail.com>2021-02-18 10:32:04 +0100
commit780ead41e075eb7875874633cd9c6f2d5ceab95e (patch)
treeecb42c1975a7f40cc1b4db54bfb1444a8fe6421b /clang/lib/Tooling/Syntax/BuildTree.cpp
parent64fc9cc723195b3dc10c03e62d088b0ed51973d0 (diff)
downloadllvm-780ead41e075eb7875874633cd9c6f2d5ceab95e.zip
llvm-780ead41e075eb7875874633cd9c6f2d5ceab95e.tar.gz
llvm-780ead41e075eb7875874633cd9c6f2d5ceab95e.tar.bz2
[Syntax] No crash on OpaqueValueExpr.
OpaqueValueExpr doesn't correspond to the concrete syntax, it has invalid source location, ignore them. Reviewed By: kbobyrev Differential Revision: https://reviews.llvm.org/D96112
Diffstat (limited to 'clang/lib/Tooling/Syntax/BuildTree.cpp')
-rw-r--r--clang/lib/Tooling/Syntax/BuildTree.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/clang/lib/Tooling/Syntax/BuildTree.cpp b/clang/lib/Tooling/Syntax/BuildTree.cpp
index a5cb293..07888b5 100644
--- a/clang/lib/Tooling/Syntax/BuildTree.cpp
+++ b/clang/lib/Tooling/Syntax/BuildTree.cpp
@@ -856,6 +856,11 @@ public:
return RecursiveASTVisitor::TraverseStmt(S);
}
+ bool TraverseOpaqueValueExpr(OpaqueValueExpr *VE) {
+ // OpaqueValue doesn't correspond to concrete syntax, ignore it.
+ return true;
+ }
+
// Some expressions are not yet handled by syntax trees.
bool WalkUpFromExpr(Expr *E) {
assert(!isImplicitExpr(E) && "should be handled by TraverseStmt");