From 0267afa9c0aac51089150a9d2f6b2e53e9d2dbff Mon Sep 17 00:00:00 2001 From: LemonBoy Date: Thu, 16 Jan 2020 12:52:04 +0100 Subject: [PATCH] Fix garbled error messages from clang --- src/zig_clang.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/zig_clang.cpp b/src/zig_clang.cpp index ed738e042e..5769d2fc73 100644 --- a/src/zig_clang.cpp +++ b/src/zig_clang.cpp @@ -2096,7 +2096,9 @@ ZigClangASTUnit *ZigClangLoadFromCommandLine(const char **args_begin, const char } if (diags->hasErrorOccurred()) { - clang::ASTUnit *unit = ast_unit ? ast_unit : err_unit.get(); + // Take ownership of the err_unit ASTUnit object so that it won't be + // free'd when we return, invalidating the error message pointers + clang::ASTUnit *unit = ast_unit ? ast_unit : err_unit.release(); ZigList errors = {}; for (clang::ASTUnit::stored_diag_iterator it = unit->stored_diag_begin(),