[PATCH] D84673: [clang][cli] Port DiagnosticOpts to new option parsing system
Jordan Rupprecht via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Jan 11 21:41:06 PST 2021
rupprecht added a comment.
I ran into this commit when integrating commits today (specifically, 97100646d1b4526de1eac3aacdb0b098739c6ec9 <https://reviews.llvm.org/rG97100646d1b4526de1eac3aacdb0b098739c6ec9>) -- there's nothing wrong with this patch AFAICT, but I'm wondering if the error messaging/handling could be improved somehow.
tl;dr I reduced an example in D94468 <https://reviews.llvm.org/D94468>
We have an internal user creating a ToolInvocation and attaching a DiagnosticConsumer to it. They were also using `-ferror-limit=-1`, which if I understand now, may be meaningless -- `-ferror-limit=0` is used to mean "unlimited error messages", which is probably what they meant.
Anyway, with the DiagnosticConsumer attached, the test crashed with an assertion failure `"Assertion 'SourceMgr && "SourceManager not set!"` failed.", which really wasn't helpful at all. After much longer than I care to admit, I thought to remove the `setDiagnosticConsumer`, and was able to find the `"invalid integral value '-1' in '-ferror-limit -1'"` error in the logs, and I was able to find the real issue pretty quickly after that.
I don't think the usage was out of the ordinary, so I created D94468 <https://reviews.llvm.org/D94468> as an example if you have time to take a look, to save the next person that may run into this issue.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D84673/new/
https://reviews.llvm.org/D84673
More information about the cfe-commits
mailing list