Create proper debuginfo for closure variables

Variables for closures hold a tuple of captured variables, and not the
function itself.

Fixes #26484
This commit is contained in:
Björn Steinbrink 2015-07-14 19:08:08 +02:00
parent 9175a16bd8
commit 3d65c7ff84
3 changed files with 29 additions and 3 deletions

View file

@ -43,7 +43,7 @@
// gdb-command:whatis f64
// gdb-check:type = f64
// gdb-command:whatis fnptr
// gdb-check:type = void (*)(void)
// gdb-check:type = [...] (*)([...])
// gdb-command:info functions _yyy
// gdb-check:[...]![...]_yyy([...]);
// gdb-command:continue

View file

@ -0,0 +1,20 @@
// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// compile-flags:-g
fn helper<F: FnOnce(usize) -> bool>(_f: F) {
print!("");
}
fn main() {
let cond = 0;
helper(|v| v == cond)
}