diff options
author | Alexey Bataev <a.bataev@hotmail.com> | 2016-05-18 09:06:38 +0000 |
---|---|---|
committer | Alexey Bataev <a.bataev@hotmail.com> | 2016-05-18 09:06:38 +0000 |
commit | a7547183ecb79e71ac5290dd787260d905a1d334 (patch) | |
tree | f4a37ae087be26912a80862ba668f8e097134188 /clang/lib/Sema/SemaDeclAttr.cpp | |
parent | ff6d195c2d94982e3d27d3a2438a80da2e7676c7 (diff) | |
download | bcm5719-llvm-a7547183ecb79e71ac5290dd787260d905a1d334.tar.gz bcm5719-llvm-a7547183ecb79e71ac5290dd787260d905a1d334.zip |
Support for MSVS default calling convention options (/Gd, /Gz, /Gv,
/Gr), by Alexander Makarov
Patch for bug #27711
Differential Revision: http://reviews.llvm.org/D20171
llvm-svn: 269891
Diffstat (limited to 'clang/lib/Sema/SemaDeclAttr.cpp')
-rw-r--r-- | clang/lib/Sema/SemaDeclAttr.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/clang/lib/Sema/SemaDeclAttr.cpp b/clang/lib/Sema/SemaDeclAttr.cpp index f185d9c4b42..aeacb4a6fe4 100644 --- a/clang/lib/Sema/SemaDeclAttr.cpp +++ b/clang/lib/Sema/SemaDeclAttr.cpp @@ -3901,11 +3901,12 @@ bool Sema::CheckCallingConvAttr(const AttributeList &attr, CallingConv &CC, // This convention is not valid for the target. Use the default function or // method calling convention. - TargetInfo::CallingConvMethodType MT = TargetInfo::CCMT_Unknown; - if (FD) - MT = FD->isCXXInstanceMember() ? TargetInfo::CCMT_Member : - TargetInfo::CCMT_NonMember; - CC = TI.getDefaultCallingConv(MT); + bool IsCXXMethod = false, IsVariadic = false; + if (FD) { + IsCXXMethod = FD->isCXXInstanceMember(); + IsVariadic = FD->isVariadic(); + } + CC = Context.getDefaultCallingConvention(IsVariadic, IsCXXMethod); } attr.setProcessingCache((unsigned) CC); |