Commits

Chris Lattner committed dd803a39f87
change LValue from holding its segments as a DiverseList to holding them as a std::vector<std::unique_ptr<PathComponent>>. DiverseList memcpy's around its buffer on copy and move operations. This seems safe with all of the current implementations of Cleanup, but is absolutely not with the LValue PathComponents. These things hold std::vectors, RValue (which has an std::vector in it), and a bunch of other probably non-trivial things. While we're in here, disable the copy constructor, since it isn't safe. This doesn't harm mainline, but was burning me on a patch I'm working on. When/if someone cares about performance optimizing this code, a better approach would be to use an ilist + bump pointer allocator. Swift SVN r21057