In response to bug #20362, change the order of operations in vector move assignment...
authorMarshall Clow <mclow.lists@gmail.com>
Mon, 21 Jul 2014 15:11:13 +0000 (15:11 +0000)
committerMarshall Clow <mclow.lists@gmail.com>
Mon, 21 Jul 2014 15:11:13 +0000 (15:11 +0000)
commit0df880209d546eff8bd200a92780dea5d9b47ae8
treeac817ec8d5e54bd022453e1a20d08ae3dc384023
parentbfa0131365fe60d4854e572923dcc2b3623669bd
In response to bug #20362, change the order of operations in vector move assignment so that if the allocator move assignment throws, we aren't left with two objects pointing at the same memory. This is not a complete fix; I am unconvinced that a complete fix is possible. With this change in place, we will leak the old contents of the vector. LWG issue #2106, when adopted, will make this problem illegal. Thanks to Thomas Koeppe for the report and analysis.

llvm-svn: 213546
libcxx/include/vector