Add -C no-stack-check

Fixes #16980.
This commit is contained in:
Keegan McAllister 2014-09-05 17:56:59 -07:00
parent db3bd23467
commit d7fff9f15b
2 changed files with 3 additions and 1 deletions

View file

@ -390,6 +390,8 @@ cgoptions!(
"divide crate into N units to optimize in parallel"),
remark: Passes = (SomePasses(Vec::new()), parse_passes,
"print remarks for these optimization passes (space separated, or \"all\")"),
no_stack_check: bool = (false, parse_bool,
"disable checks for stack exhaustion (a memory-safety hazard!)"),
)
pub fn build_codegen_options(matches: &getopts::Matches) -> CodegenOptions

View file

@ -204,7 +204,7 @@ pub fn decl_fn(ccx: &CrateContext, name: &str, cc: llvm::CallConv,
// Function addresses in Rust are never significant, allowing functions to be merged.
llvm::SetUnnamedAddr(llfn, true);
if ccx.is_split_stack_supported() {
if ccx.is_split_stack_supported() && !ccx.sess().opts.cg.no_stack_check {
set_split_stack(llfn);
}