<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><br><div><div>On Apr 29, 2013, at 16:08 , Ted Kremenek <<a href="mailto:kremenek@apple.com">kremenek@apple.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">On Apr 29, 2013, at 4:02 PM, Jordan Rose <<a href="mailto:jordan_rose@apple.com">jordan_rose@apple.com</a>> wrote:<br><div><blockquote type="cite"><div style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">I'm fairly sure flattening can still cause problems for when diagnostics are output twice, because PathDiagnosticPiece objects that contain path segments themselves really do need to be copied to make them independent. I don't think we really have a way to "share" the path pieces unless we have some kind of deepCloneNoLeaves() method.</div></blockquote><br></div><div>I took a look at the flattening.  It really looks like we are either doing straight sharing or we conjure up new events.  The flattening essentially does a deep clone.</div></div></blockquote></div><br><div>Ah, yes, I see. Other than that FIXME for macros, which should not be made worse by this.</div></body></html>