Skip to content

Commit 21d7098

Browse files
committed
Fix running code via '-Z jit'
1 parent 6148c1c commit 21d7098

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

src/librustc/back/link.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,8 @@ pub mod jit {
200200
}
201201
}
202202

203+
// The stage1 compiler won't work, but that doesn't really matter. TLS
204+
// changed only very recently to allow storage of owned values.
203205
fn engine_key(_: ~Engine) {}
204206

205207
#[cfg(not(stage0))]
@@ -213,6 +215,8 @@ pub mod jit {
213215
pub fn consume_engine() -> Option<~Engine> {
214216
unsafe { local_data::pop(engine_key) }
215217
}
218+
#[cfg(stage0)]
219+
pub fn consume_engine() -> Option<~Engine> { None }
216220
}
217221

218222
pub mod write {

src/librustc/rustc.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,11 @@ pub fn monitor(f: ~fn(diagnostic::Emitter)) {
332332

333333
let _finally = finally { ch: ch };
334334

335-
f(demitter)
335+
f(demitter);
336+
337+
// Due reasons explain in #7732, if there was a jit execution context it
338+
// must be consumed and passed along to our parent task.
339+
back::link::jit::consume_engine()
336340
} {
337341
result::Ok(_) => { /* fallthrough */ }
338342
result::Err(_) => {

0 commit comments

Comments
 (0)