Michael137 added a comment.

In D154709#4487776 <https://reviews.llvm.org/D154709#4487776>, @balazske wrote:

> The goal is to have a message always in `ASTImportError`? Then probably the 
> constructor without message can be removed, at least to check if really the 
> message is added at all places. I found that it is missing in 
> `VisitObjCImplementationDecl`.

Agree, will do that

> I do not know what happens with messages passed to FromDiag or ToDiag and if 
> these are available somehow to LLDB.

Ideally yes, but I found they're not very helpful in LLDB's use-case because:

1. the diagnostic doesn't get issued at all call-sites
2. LLDB switches off any `odr` related warnings because AFAIU they occur a lot 
(outside the ASTImporter) and would flood the user with redundant information

> Otherwise it would be even better to remove all FromDiag and ToDiag messages 
> from ASTImporter and put these messages into ASTImportError and use later in 
> the way that is needed by the use case. This would require to pass a message 
> to HandleNameConflict but then we have always the detailed message. There are 
> places where diagnostic is generated but there is no error, we should check 
> if this is correct and if we can remove the diagnostic or make import error.

That sounds like a good way forward. The `-ast-merge` clang option does benefit 
from these diagnostics. So we would probably need to change it to dump the 
`ASTImportError` instead of relying on the diagnostics.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D154709/new/

https://reviews.llvm.org/D154709

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to