diff --git a/README.md b/README.md index 7ea3ef1019..868bdfc22e 100644 --- a/README.md +++ b/README.md @@ -75,7 +75,7 @@ the Zig compiler itself: #### Library Dependencies These libraries must be installed on your system, with the development files -available. The Zig compiler dynamically links against them. +available. The Zig compiler links against them. * LLVM, Clang, and LLD libraries == 4.x diff --git a/src/codegen.cpp b/src/codegen.cpp index a80610b731..2b48450711 100644 --- a/src/codegen.cpp +++ b/src/codegen.cpp @@ -720,6 +720,11 @@ static LLVMValueRef get_safety_crash_err_fn(CodeGen *g) { addLLVMFnAttr(fn_val, "cold"); LLVMSetLinkage(fn_val, LLVMInternalLinkage); LLVMSetFunctionCallConv(fn_val, LLVMFastCallConv); + addLLVMFnAttr(fn_val, "nounwind"); + if (!g->is_release_build) { + ZigLLVMAddFunctionAttr(fn_val, "no-frame-pointer-elim", "true"); + ZigLLVMAddFunctionAttr(fn_val, "no-frame-pointer-elim-non-leaf", nullptr); + } LLVMBasicBlockRef entry_block = LLVMAppendBasicBlock(fn_val, "Entry"); LLVMBasicBlockRef prev_block = LLVMGetInsertBlock(g->builder);