From 320647c02ae9827cae0824c6aec2bcdfcf482e44 Mon Sep 17 00:00:00 2001 From: Raphael Isemann Date: Mon, 10 Feb 2020 08:13:09 +0100 Subject: [PATCH] [lldb] Pass a valid SourceLocation to Sema::RequireCompleteType in ASTResultSynthesizer Sema::RequireCompleteTypeImpl is supposed to have an assert that checks that the SourceLocation that is passed in is always valid. It's currently commented out, but as soon as this assert goes active, nearly every LLDB expression will start crashing as we always pass in an invalid SourceLocation from the ASTResultSynthesizer. This patch just passes in the valid SourceLocation of the expression (which is the SourceLocation where the complete type is required) to prevent that from happening. --- lldb/source/Plugins/ExpressionParser/Clang/ASTResultSynthesizer.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lldb/source/Plugins/ExpressionParser/Clang/ASTResultSynthesizer.cpp b/lldb/source/Plugins/ExpressionParser/Clang/ASTResultSynthesizer.cpp index f0e1b5d..bd705af 100644 --- a/lldb/source/Plugins/ExpressionParser/Clang/ASTResultSynthesizer.cpp +++ b/lldb/source/Plugins/ExpressionParser/Clang/ASTResultSynthesizer.cpp @@ -325,7 +325,8 @@ bool ASTResultSynthesizer::SynthesizeBodyResult(CompoundStmt *Body, else result_ptr_id = &Ctx.Idents.get("$__lldb_expr_result_ptr"); - m_sema->RequireCompleteType(SourceLocation(), expr_qual_type, + m_sema->RequireCompleteType(last_expr->getSourceRange().getBegin(), + expr_qual_type, clang::diag::err_incomplete_type); QualType ptr_qual_type; -- 2.7.4