about summary refs log tree commit diff
path: root/src/bootstrap
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2018-06-12 21:21:29 +0200
committerNikita Popov <nikita.ppv@gmail.com>2018-06-12 21:34:32 +0200
commit3f18a41333aabf515d6d343c07f3bbbd154f6018 (patch)
tree793d9157e852e054a332770ff2dcf1001c93d2c9 /src/bootstrap
parent22cf833dd1f1afc30192bb9d4e030bacb4de6fc7 (diff)
downloadrust-3f18a41333aabf515d6d343c07f3bbbd154f6018.tar.gz
rust-3f18a41333aabf515d6d343c07f3bbbd154f6018.zip
Add verify-llvm-ir flag to config.toml
Diffstat (limited to 'src/bootstrap')
-rw-r--r--src/bootstrap/bin/rustc.rs4
-rw-r--r--src/bootstrap/builder.rs4
-rw-r--r--src/bootstrap/config.rs3
3 files changed, 11 insertions, 0 deletions
diff --git a/src/bootstrap/bin/rustc.rs b/src/bootstrap/bin/rustc.rs
index 4607ca5cf9f..e81595a8c62 100644
--- a/src/bootstrap/bin/rustc.rs
+++ b/src/bootstrap/bin/rustc.rs
@@ -283,6 +283,10 @@ fn main() {
         cmd.arg("--cfg").arg("parallel_queries");
     }
 
+    if env::var_os("RUSTC_VERIFY_LLVM_IR").is_some() {
+        cmd.arg("-Z").arg("verify-llvm-ir");
+    }
+
     let color = match env::var("RUSTC_COLOR") {
         Ok(s) => usize::from_str(&s).expect("RUSTC_COLOR should be an integer"),
         Err(_) => 0,
diff --git a/src/bootstrap/builder.rs b/src/bootstrap/builder.rs
index d482a0d5650..76387796d70 100644
--- a/src/bootstrap/builder.rs
+++ b/src/bootstrap/builder.rs
@@ -898,6 +898,10 @@ impl<'a> Builder<'a> {
             cargo.env("RUSTC_BACKTRACE_ON_ICE", "1");
         }
 
+        if self.config.rust_verify_llvm_ir {
+            cargo.env("RUSTC_VERIFY_LLVM_IR", "1");
+        }
+
         cargo.env("RUSTC_VERBOSE", format!("{}", self.verbosity));
 
         // in std, we want to avoid denying warnings for stage 0 as that makes cfg's painful.
diff --git a/src/bootstrap/config.rs b/src/bootstrap/config.rs
index 47feb8a8ab6..a0f6b786cbd 100644
--- a/src/bootstrap/config.rs
+++ b/src/bootstrap/config.rs
@@ -105,6 +105,7 @@ pub struct Config {
     pub rust_dist_src: bool,
     pub rust_codegen_backends: Vec<Interned<String>>,
     pub rust_codegen_backends_dir: String,
+    pub rust_verify_llvm_ir: bool,
 
     pub build: Interned<String>,
     pub hosts: Vec<Interned<String>>,
@@ -311,6 +312,7 @@ struct Rust {
     lld: Option<bool>,
     deny_warnings: Option<bool>,
     backtrace_on_ice: Option<bool>,
+    verify_llvm_ir: Option<bool>,
 }
 
 /// TOML representation of how each build target is configured.
@@ -542,6 +544,7 @@ impl Config {
             config.save_toolstates = rust.save_toolstates.clone().map(PathBuf::from);
             set(&mut config.deny_warnings, rust.deny_warnings.or(flags.warnings));
             set(&mut config.backtrace_on_ice, rust.backtrace_on_ice);
+            set(&mut config.rust_verify_llvm_ir, rust.verify_llvm_ir);
 
             if let Some(ref backends) = rust.codegen_backends {
                 config.rust_codegen_backends = backends.iter()