On Wed, 2019-12-11 at 13:42 -0700, Jeff Law wrote: > On Fri, 2019-11-15 at 20:23 -0500, David Malcolm wrote: > > This patch adds diagnostic_manager and related support classes for > > saving, deduplicating, and emitting analyzer diagnostics. > > > > gcc/ChangeLog: > > * analyzer/diagnostic-manager.cc: New file. > > * analyzer/diagnostic-manager.h: New file. > I was originally going to suggest we look to bring this out of the > analyzer subdir, but it looks like there's a lot of tie-ins to the > static analyzer, so let's not try that right now. > > > > + > > +/* Prune PATH, based on the verbosity level, to the most pertinent > > + events for a diagnostic that involves VAR ending in state STATE > > + (for state machine SM). > > + > > + PATH is updated in place, and the redundant checker_events are > > deleted. > > + > > + As well as deleting events, call record_critical_state on > > events > > in > > + which state critical to the pending_diagnostic is being > > handled, > > so > > + that the event's get_desc vfunc can potentially supply a more > > precise > > + description of the event to the user. > > + e.g. improving > > + "calling 'foo' from 'bar'" > > + to > > + "passing possibly-NULL pointer 'ptr' to 'foo' from 'bar' as > > param 1" > > + when the diagnostic relates to later dereferencing 'ptr'. */ > > + > > +void > > +diagnostic_manager::prune_path (checker_path *path, > > + const state_machine *sm, > > + tree var, > > + state_machine::state_t state) const > You might consider breaking this up a bit. I guess it stands out > because it's one of the few places (so far) where the function won't > fit in my portrait window :-)
Thanks. Have done so locally, so will be in next iteration once I finish squashing everything. Dave