Commit 0267afa9c0

LemonBoy <thatlemon@gmail.com>
2020-01-16 12:52:04
Fix garbled error messages from clang
1 parent 8a792db
Changed files (1)
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<Stage2ErrorMsg> errors = {};
 
         for (clang::ASTUnit::stored_diag_iterator it = unit->stored_diag_begin(),