about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEmilio Cobos Álvarez <emilio@crisal.io>2018-02-19 01:57:55 +0100
committerEmilio Cobos Álvarez <emilio@crisal.io>2018-03-25 03:30:05 +0200
commit99127abca8c9678e14ee11bee4d46bc34ec8b164 (patch)
tree66c1eda706f6a499d09b66616333387046ac18c4
parent324ca7acd59be59abe0562287d5493f78a60823a (diff)
downloadrust-99127abca8c9678e14ee11bee4d46bc34ec8b164.tar.gz
rust-99127abca8c9678e14ee11bee4d46bc34ec8b164.zip
rustc_trans: disable probestack when using pgo-gen.
Executables crash in the probestack function otherwise... I haven't debugged
much further than that.

Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
-rw-r--r--src/librustc_trans/attributes.rs5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/librustc_trans/attributes.rs b/src/librustc_trans/attributes.rs
index df78ccdd229..f53c1e84f6e 100644
--- a/src/librustc_trans/attributes.rs
+++ b/src/librustc_trans/attributes.rs
@@ -92,6 +92,11 @@ pub fn set_probestack(cx: &CodegenCx, llfn: ValueRef) {
         _ => {}
     }
 
+    // probestack doesn't play nice either with pgo-gen.
+    if cx.sess().opts.cg.pgo_gen.is_some() {
+        return;
+    }
+
     // Flag our internal `__rust_probestack` function as the stack probe symbol.
     // This is defined in the `compiler-builtins` crate for each architecture.
     llvm::AddFunctionAttrStringValue(