https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106285
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- Re the grouping of related notes, I notice that with -fdiagnostics-format=json there is no proper structure. All the notes are just children of the error, at the same level. So the nesting is something like: error: no matching function for call to ... { location of failed call site, candidate: decl, reason for failure, location of decl, candidate: decl, reason for failure, location of decl, candidate: decl, reason for failure, location of decl, } Ideally we'd have this nesting: error: no matching function for call to ... { location of failed call site, candidate: decl { reason for failure, location of decl }, candidate: decl { reason for failure, location of decl }, candidate: decl { reason for failure, location of decl }, } i.e. the error would have the candidates as direct children, but then the locations and failure reason for each candidate would be children of the candidate. This would allow IDEs to group the info about each candidate and optionally collapse it. With the current (lack of) structure that's not possible. Every note is at the same level and there's no indication which ones are related to each other.