http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59872
--- Comment #1 from David Krauss <potswa at mac dot com> --- It looks like the allocator-aware update introduced a copying branch to the move constructor, to handle the case of transferring an object from one stateful allocator to another. The branch on _Alloc_traits::_S_always_equal(), presumably a constant value, should be split into two functions. I'll continue digging in, I don't yet understand _Alloc_trats or why _S_always_equal is a private interface.