================
@@ -4628,6 +4628,12 @@ ASTFileSignature ASTWriter::WriteAST(Sema &SemaRef, 
StringRef OutputFile,
   WritingAST = true;
 
   ASTHasCompilerErrors = hasErrors;
+  bool trueHasErrors = 
SemaRef.PP.getDiagnostics().hasUncompilableErrorOccurred();
----------------
rajkumarananthu wrote:

Hi @shafik, thanks for your time for the review.

The scenario here is that, at line 4630 you can see the `ASTHasCompilerErrors` 
is being set using `hasErrors` which is an input to the method here 
`ASTWriter::WriteAST()`.

And if you see the description of the issue reported, the user is purposely 
passing the `hasErrors` as `false` even when there is a compiler error in the 
input file, because of this clang is giving a crashing pch file.

So, if the `hasErrors` is not a valid value, I am setting it to the correct 
value. May be I can just remove all the unnecessary code and just directly 
assign `ASTHasCompilerErrors = 
SemaRef.PP.getDiagnostics().hasUncompilableErrorOccured();` which will be 
correct.

And assertion I have added to detect this in debug build early, may be I am 
wrong, sorry for the confusion, it should not behave differently in release and 
debug builds.

Let me know what you think of this?

Thanks
Rajkumar Ananthu.

https://github.com/llvm/llvm-project/pull/68127
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to