summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaDeclAttr.cpp
diff options
context:
space:
mode:
authorAlexey Bataev <a.bataev@hotmail.com>2016-05-18 09:06:38 +0000
committerAlexey Bataev <a.bataev@hotmail.com>2016-05-18 09:06:38 +0000
commita7547183ecb79e71ac5290dd787260d905a1d334 (patch)
treef4a37ae087be26912a80862ba668f8e097134188 /clang/lib/Sema/SemaDeclAttr.cpp
parentff6d195c2d94982e3d27d3a2438a80da2e7676c7 (diff)
downloadbcm5719-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.cpp11
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);
OpenPOWER on IntegriCloud