From 780ead41e075eb7875874633cd9c6f2d5ceab95e Mon Sep 17 00:00:00 2001 From: Haojian Wu Date: Thu, 18 Feb 2021 10:09:02 +0100 Subject: [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 --- clang/lib/Tooling/Syntax/BuildTree.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'clang/lib/Tooling/Syntax/BuildTree.cpp') 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"); -- cgit v1.1