On Apr 29, 2013, at 4:02 PM, Jordan Rose <[email protected]> wrote:

> std::list does support ripping out and inserting nodes in place (using the 
> iterator versions of insert() and erase()), and using an ilist for a 
> non-intrusive list seems weird.

Ah yes, so it does.  I had thought it did, looked at some documentation and 
didn't find it, and took this route.  I agree that replicating std::list's 
behavior doesn't make much sense if all we are doing is replicated std::list.

> 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.

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.
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to