parent
db3bd23467
commit
d7fff9f15b
2 changed files with 3 additions and 1 deletions
|
@ -390,6 +390,8 @@ cgoptions!(
|
||||||
"divide crate into N units to optimize in parallel"),
|
"divide crate into N units to optimize in parallel"),
|
||||||
remark: Passes = (SomePasses(Vec::new()), parse_passes,
|
remark: Passes = (SomePasses(Vec::new()), parse_passes,
|
||||||
"print remarks for these optimization passes (space separated, or \"all\")"),
|
"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
|
pub fn build_codegen_options(matches: &getopts::Matches) -> CodegenOptions
|
||||||
|
|
|
@ -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.
|
// Function addresses in Rust are never significant, allowing functions to be merged.
|
||||||
llvm::SetUnnamedAddr(llfn, true);
|
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);
|
set_split_stack(llfn);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue