diff options
author | David Majnemer <david.majnemer@gmail.com> | 2015-05-11 03:00:22 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2015-05-11 03:00:22 +0000 |
commit | 30f058aa9d924f0c52aa5207328e9ba6374ce6b4 (patch) | |
tree | bfdae3559827986dfa7df28e20e416f5ffdf50e3 /clang/lib/Sema | |
parent | 6800293701c073976a2923773aaf50896f388db5 (diff) | |
download | bcm5719-llvm-30f058aa9d924f0c52aa5207328e9ba6374ce6b4.tar.gz bcm5719-llvm-30f058aa9d924f0c52aa5207328e9ba6374ce6b4.zip |
[MS ABI] Import move assignment operators
MSVC 2015 changed behavior from 2013; it imports move assignment
operators.
llvm-svn: 236966
Diffstat (limited to 'clang/lib/Sema')
-rw-r--r-- | clang/lib/Sema/SemaDeclCXX.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp index 8599a0213d2..baa05c334f4 100644 --- a/clang/lib/Sema/SemaDeclCXX.cpp +++ b/clang/lib/Sema/SemaDeclCXX.cpp @@ -4791,16 +4791,16 @@ static void checkDLLAttribute(Sema &S, CXXRecordDecl *Class) { if (MD->isDeleted()) continue; - if (MD->isMoveAssignmentOperator() && ClassImported && MD->isInlined()) { - // Current MSVC versions don't export the move assignment operators, so - // don't attempt to import them if we have a definition. - continue; - } - - if (MD->isInlined() && - !S.Context.getTargetInfo().getCXXABI().isMicrosoft()) { + if (MD->isInlined()) { // MinGW does not import or export inline methods. - continue; + if (!S.Context.getTargetInfo().getCXXABI().isMicrosoft()) + continue; + + // MSVC versions before 2015 don't export the move assignment operators, + // so don't attempt to import them if we have a definition. + if (ClassImported && MD->isMoveAssignmentOperator() && + !S.getLangOpts().isCompatibleWithMSVC(19)) + continue; } } |