diff options
Diffstat (limited to 'lib/CodeGen/CGCall.cpp')
-rw-r--r-- | lib/CodeGen/CGCall.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/CodeGen/CGCall.cpp b/lib/CodeGen/CGCall.cpp index 9fd31fe253..f2c2d0a85d 100644 --- a/lib/CodeGen/CGCall.cpp +++ b/lib/CodeGen/CGCall.cpp @@ -37,6 +37,7 @@ using namespace CodeGen; static unsigned ClangCallConvToLLVMCallConv(CallingConv CC) { switch (CC) { default: return llvm::CallingConv::C; + case CC_Cold: return llvm::CallingConv::Cold; case CC_X86StdCall: return llvm::CallingConv::X86_StdCall; case CC_X86FastCall: return llvm::CallingConv::X86_FastCall; case CC_X86ThisCall: return llvm::CallingConv::X86_ThisCall; @@ -135,6 +136,9 @@ CodeGenTypes::arrangeFreeFunctionType(CanQual<FunctionProtoType> FTP) { static CallingConv getCallingConventionForDecl(const Decl *D) { // Set the appropriate calling convention for the Function. + if (D->hasAttr<ColdCCAttr>()) + return CC_Cold; + if (D->hasAttr<StdCallAttr>()) return CC_X86StdCall; |