Skip to content

Stack Closure Owned Pointer Reference Crash #6762

Closed
@simonjlewis

Description

@simonjlewis

Creating a stack closure which references an owned pointer and then transferring ownership of the owned box before invoking the stack closure results in a crash.

For example, in Rust 0.6, this will compile

fn twice(x: ~uint) -> uint
{
     *x * 2
}

fn invoke(f : &fn() -> uint)
{
     f();
}

fn main()
{
      let x  : ~uint         = ~9;
      let sq : &fn() -> uint = || { *x * *x };

      twice(x);
      invoke(sq);
}

and the resulting program will then crash with a SEGV

Metadata

Metadata

Assignees

No one assigned

    Labels

    I-crashIssue: The compiler crashes (SIGSEGV, SIGABRT, etc). Use I-ICE instead when the compiler panics.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions