Richard Smith <[email protected]> writes: > On Mon, Oct 20, 2014 at 10:43 AM, Justin Bogner <[email protected]> wrote: > > Currently, when --serialize-diagnostics is passed this only includes the > diagnostics from clang -cc1, and driver diagnostics are dropped. This > causes issues for tools that use the serialized diagnostics, since > stderr is lost and these diagnostics aren't seen at all. > > This patch handles this by merging the diagnostics from the CC1 process > and the driver diagnostics into a single file when the driver invokes > CC1. > > The idea seems (superficially) reasonable to me. Have you tested this in the > case where the driver is given multiple input files to process? Please add a > test covering that case.
Multiple input files don't DTRT with serialized diagnostics in the first place. I've just filed pr21318 about that. This doesn't make it worse (the driver diags *and* the last -cc1 will be included) and potentially makes that easier to fix, since the driver could be taught to merge after each execution. It looks to me that to actually do that work involves a fair amount of restructuring of the driver though. > What about the case where the clang driver runs a tool other than the clang > frontend? Your hypothetical process that runs clang with > --serialize-diagnostics and drops its stderr will lose diagnostics there too, > right? I'm not sure what you mean here. If the driver runs a tool that creates a serialized diagnostics file, this will merge it in. If the tool doesn't create a diagnostics file, the diagnostics will only include the driver's diags. _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
