summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGCall.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/CodeGen/CGCall.cpp')
-rw-r--r--clang/lib/CodeGen/CGCall.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CGCall.cpp b/clang/lib/CodeGen/CGCall.cpp
index 0a202ef5d4f..9a38771aa45 100644
--- a/clang/lib/CodeGen/CGCall.cpp
+++ b/clang/lib/CodeGen/CGCall.cpp
@@ -1072,6 +1072,18 @@ void CodeGenModule::ConstructAttributeList(const CGFunctionInfo &FI,
CodeGenOpts.SoftFloat ? "true" : "false");
FuncAttrs.addAttribute("stack-protector-buffer-size",
llvm::utostr(CodeGenOpts.SSPBufferSize));
+
+ bool NoFramePointerElimNonLeaf;
+ if (!CodeGenOpts.DisableFPElim) {
+ NoFramePointerElimNonLeaf = false;
+ } else if (CodeGenOpts.OmitLeafFramePointer) {
+ NoFramePointerElimNonLeaf = true;
+ } else {
+ NoFramePointerElimNonLeaf = true;
+ }
+
+ FuncAttrs.addAttribute("no-frame-pointer-elim-non-leaf",
+ NoFramePointerElimNonLeaf ? "true" : "false");
}
QualType RetTy = FI.getReturnType();
OpenPOWER on IntegriCloud