From 2c71adaaa21e5d9e4fe80625e41982ac83303df8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20K=C3=A5re=20Alsaker?= Date: Thu, 15 Jan 2015 09:22:27 +0100 Subject: [PATCH] Disable -C lto optimizations on opt_level=0 Fixes #21184 --- src/librustc_trans/back/lto.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/librustc_trans/back/lto.rs b/src/librustc_trans/back/lto.rs index d7148bdaa1fe8..c0b1492a78450 100644 --- a/src/librustc_trans/back/lto.rs +++ b/src/librustc_trans/back/lto.rs @@ -167,7 +167,10 @@ pub fn run(sess: &session::Session, llmod: ModuleRef, llvm::LLVMRustAddAnalysisPasses(tm, pm, llmod); llvm::LLVMRustAddPass(pm, "verify\0".as_ptr() as *const _); + let opt = sess.opts.cg.opt_level.unwrap_or(0) as libc::c_uint; + let builder = llvm::LLVMPassManagerBuilderCreate(); + llvm::LLVMPassManagerBuilderSetOptLevel(builder, opt); llvm::LLVMPassManagerBuilderPopulateLTOPassManager(builder, pm, /* Internalize = */ False, /* RunInliner = */ True);