[CodeGen] Check if the Decl pointer passed is null, and if so, return
early. This is needed in a patch I plan to commit later, in which a null Decl pointer is passed to SetLLVMFunctionAttributesForDefinition. Relevant discussion is in http://reviews.llvm.org/D13525. llvm-svn: 249722
This commit is contained in:
@@ -786,6 +786,21 @@ void CodeGenModule::SetLLVMFunctionAttributesForDefinition(const Decl *D,
|
||||
if (!hasUnwindExceptions(LangOpts))
|
||||
B.addAttribute(llvm::Attribute::NoUnwind);
|
||||
|
||||
if (LangOpts.getStackProtector() == LangOptions::SSPOn)
|
||||
B.addAttribute(llvm::Attribute::StackProtect);
|
||||
else if (LangOpts.getStackProtector() == LangOptions::SSPStrong)
|
||||
B.addAttribute(llvm::Attribute::StackProtectStrong);
|
||||
else if (LangOpts.getStackProtector() == LangOptions::SSPReq)
|
||||
B.addAttribute(llvm::Attribute::StackProtectReq);
|
||||
|
||||
if (!D) {
|
||||
F->addAttributes(llvm::AttributeSet::FunctionIndex,
|
||||
llvm::AttributeSet::get(
|
||||
F->getContext(),
|
||||
llvm::AttributeSet::FunctionIndex, B));
|
||||
return;
|
||||
}
|
||||
|
||||
if (D->hasAttr<NakedAttr>()) {
|
||||
// Naked implies noinline: we should not be inlining such functions.
|
||||
B.addAttribute(llvm::Attribute::Naked);
|
||||
@@ -810,13 +825,6 @@ void CodeGenModule::SetLLVMFunctionAttributesForDefinition(const Decl *D,
|
||||
if (D->hasAttr<MinSizeAttr>())
|
||||
B.addAttribute(llvm::Attribute::MinSize);
|
||||
|
||||
if (LangOpts.getStackProtector() == LangOptions::SSPOn)
|
||||
B.addAttribute(llvm::Attribute::StackProtect);
|
||||
else if (LangOpts.getStackProtector() == LangOptions::SSPStrong)
|
||||
B.addAttribute(llvm::Attribute::StackProtectStrong);
|
||||
else if (LangOpts.getStackProtector() == LangOptions::SSPReq)
|
||||
B.addAttribute(llvm::Attribute::StackProtectReq);
|
||||
|
||||
F->addAttributes(llvm::AttributeSet::FunctionIndex,
|
||||
llvm::AttributeSet::get(
|
||||
F->getContext(), llvm::AttributeSet::FunctionIndex, B));
|
||||
|
||||
Reference in New Issue
Block a user