[PM] I have been educated by several folks that MSVC will never
authorChandler Carruth <chandlerc@gmail.com>
Mon, 10 Mar 2014 00:35:47 +0000 (00:35 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Mon, 10 Mar 2014 00:35:47 +0000 (00:35 +0000)
commit153ed406147a56a9d1220248e6bff0d7fea18dd3
treea811db933ee9cdd2a41de73546bd0a544befe175
parent08da01c74136c221ec0cfcb00db8552ce926f54c
[PM] I have been educated by several folks that MSVC will never
synthesize a move constructor. Thus, for any types where move semantics
are important (yea, that's essentially every type...) you must
explicitly define the special members. Do so systematically throughout
the pass manager as the core of the design relies heavily on move
semantics.

This will hopefully fix the build with MSVC 2013. We still don't know
why MSVC 2012 accepted this code, but it almost certainly wasn't doing
the right thing.

I've also added explicit to a few single-argument constructors spotted
in passing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@203426 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/IR/PassManager.h