From d03e823fb43be47f8fe3c651bfcf8a3254c3fe1c Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Mon, 5 Apr 2010 21:10:19 +0000 Subject: Clarify the ownership semantics of the Diagnostic object used by ASTUnit. Previously, we would end up with use-after-free errors because the Diagnostic object would be creating in one place (say, CIndex) and its ownership would not be transferred into the ASTUnit. Fixes . llvm-svn: 100464 --- clang/lib/Frontend/ASTMerge.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'clang/lib/Frontend/ASTMerge.cpp') diff --git a/clang/lib/Frontend/ASTMerge.cpp b/clang/lib/Frontend/ASTMerge.cpp index 2228ea45df3..24658615a9a 100644 --- a/clang/lib/Frontend/ASTMerge.cpp +++ b/clang/lib/Frontend/ASTMerge.cpp @@ -37,7 +37,8 @@ void ASTMergeAction::ExecuteAction() { CI.getDiagnostics().SetArgToStringFn(&FormatASTNodeDiagnosticArgument, &CI.getASTContext()); for (unsigned I = 0, N = ASTFiles.size(); I != N; ++I) { - ASTUnit *Unit = ASTUnit::LoadFromPCHFile(ASTFiles[I], CI.getDiagnostics(), + ASTUnit *Unit = ASTUnit::LoadFromPCHFile(ASTFiles[I], + UnownedDiag(CI.getDiagnostics()), false); if (!Unit) continue; -- cgit v1.2.3