/// the IR is not mutated at all.
class PreservedAnalyses {
public:
+ // We have to explicitly define all the special member functions because MSVC
+ // refuses to generate them.
PreservedAnalyses() {}
PreservedAnalyses(const PreservedAnalyses &Arg)
: PreservedPassIDs(Arg.PreservedPassIDs) {}
struct PassModel<IRUnitT, AnalysisManagerT, PassT,
true> : PassConcept<IRUnitT, AnalysisManagerT> {
explicit PassModel(PassT Pass) : Pass(std::move(Pass)) {}
+ // We have to explicitly define all the special member functions because MSVC
+ // refuses to generate them.
PassModel(const PassModel &Arg) : Pass(Arg.Pass) {}
PassModel(PassModel &&Arg) : Pass(Arg.Pass) {}
PassModel &operator=(PassModel RHS) {
struct PassModel<IRUnitT, AnalysisManagerT, PassT,
false> : PassConcept<IRUnitT, AnalysisManagerT> {
explicit PassModel(PassT Pass) : Pass(std::move(Pass)) {}
+ // We have to explicitly define all the special member functions because MSVC
+ // refuses to generate them.
PassModel(const PassModel &Arg) : Pass(Arg.Pass) {}
PassModel(PassModel &&Arg) : Pass(Arg.Pass) {}
PassModel &operator=(PassModel RHS) {
struct AnalysisResultModel<IRUnitT, PassT, ResultT,
false> : AnalysisResultConcept<IRUnitT> {
explicit AnalysisResultModel(ResultT Result) : Result(std::move(Result)) {}
+ // We have to explicitly define all the special member functions because MSVC
+ // refuses to generate them.
AnalysisResultModel(const AnalysisResultModel &Arg) : Result(Arg.Result) {}
AnalysisResultModel(AnalysisResultModel &&Arg) : Result(Arg.Result) {}
AnalysisResultModel &operator=(AnalysisResultModel RHS) {
struct AnalysisResultModel<IRUnitT, PassT, ResultT,
true> : AnalysisResultConcept<IRUnitT> {
explicit AnalysisResultModel(ResultT Result) : Result(std::move(Result)) {}
+ // We have to explicitly define all the special member functions because MSVC
+ // refuses to generate them.
AnalysisResultModel(const AnalysisResultModel &Arg) : Result(Arg.Result) {}
AnalysisResultModel(AnalysisResultModel &&Arg) : Result(Arg.Result) {}
AnalysisResultModel &operator=(AnalysisResultModel RHS) {
true> : AnalysisPassConcept<IRUnitT,
AnalysisManagerT> {
explicit AnalysisPassModel(PassT Pass) : Pass(std::move(Pass)) {}
+ // We have to explicitly define all the special member functions because MSVC
+ // refuses to generate them.
AnalysisPassModel(const AnalysisPassModel &Arg) : Pass(Arg.Pass) {}
AnalysisPassModel(AnalysisPassModel &&Arg) : Pass(Arg.Pass) {}
AnalysisPassModel &operator=(AnalysisPassModel RHS) {
false> : AnalysisPassConcept<IRUnitT,
AnalysisManagerT> {
explicit AnalysisPassModel(PassT Pass) : Pass(std::move(Pass)) {}
+ // We have to explicitly define all the special member functions because MSVC
+ // refuses to generate them.
AnalysisPassModel(const AnalysisPassModel &Arg) : Pass(Arg.Pass) {}
AnalysisPassModel(AnalysisPassModel &&Arg) : Pass(Arg.Pass) {}
AnalysisPassModel &operator=(AnalysisPassModel RHS) {
class ModulePassManager {
public:
// We have to explicitly define all the special member functions because MSVC
- // 2013 refuses to generate them.
+ // refuses to generate them.
ModulePassManager() {}
ModulePassManager(ModulePassManager &&Arg) : Passes(std::move(Arg.Passes)) {}
ModulePassManager &operator=(ModulePassManager &&RHS) {
class FunctionPassManager {
public:
// We have to explicitly define all the special member functions because MSVC
- // 2013 refuses to generate them.
+ // refuses to generate them.
FunctionPassManager() {}
FunctionPassManager(FunctionPassManager &&Arg) : Passes(std::move(Arg.Passes)) {}
FunctionPassManager &operator=(FunctionPassManager &&RHS) {
// FIXME: Provide template aliases for the models when we're using C++11 in
// a mode supporting them.
+ // We have to explicitly define all the special member functions because MSVC
+ // refuses to generate them.
AnalysisManagerBase() {}
AnalysisManagerBase(AnalysisManagerBase &&Arg)
: AnalysisPasses(std::move(Arg.AnalysisPasses)) {}
typedef BaseT::PassConceptT PassConceptT;
public:
+ // We have to explicitly define all the special member functions because MSVC
+ // refuses to generate them.
ModuleAnalysisManager() {}
ModuleAnalysisManager(ModuleAnalysisManager &&Arg)
: BaseT(std::move(static_cast<BaseT &>(Arg))),
public:
// Most public APIs are inherited from the CRTP base class.
+ // We have to explicitly define all the special member functions because MSVC
+ // refuses to generate them.
FunctionAnalysisManager() {}
FunctionAnalysisManager(FunctionAnalysisManager &&Arg)
: BaseT(std::move(static_cast<BaseT &>(Arg))),
class FunctionAnalysisManagerModuleProxy::Result {
public:
explicit Result(FunctionAnalysisManager &FAM) : FAM(FAM) {}
+ // We have to explicitly define all the special member functions because MSVC
+ // refuses to generate them.
Result(const Result &Arg) : FAM(Arg.FAM) {}
Result(Result &&Arg) : FAM(Arg.FAM) {}
Result &operator=(Result RHS) {
class Result {
public:
explicit Result(const ModuleAnalysisManager &MAM) : MAM(MAM) {}
+ // We have to explicitly define all the special member functions because
+ // MSVC refuses to generate them.
Result(const Result &Arg) : MAM(Arg.MAM) {}
Result(Result &&Arg) : MAM(Arg.MAM) {}
Result &operator=(Result RHS) {
public:
explicit ModuleToFunctionPassAdaptor(FunctionPassT Pass)
: Pass(std::move(Pass)) {}
+ // We have to explicitly define all the special member functions because MSVC
+ // refuses to generate them.
ModuleToFunctionPassAdaptor(const ModuleToFunctionPassAdaptor &Arg)
: Pass(Arg.Pass) {}
ModuleToFunctionPassAdaptor(ModuleToFunctionPassAdaptor &&Arg)