Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Segfault with pattern guards, copy bindings, impls, and structs #3370

Closed
pcwalton opened this issue Sep 4, 2012 · 1 comment
Closed

Segfault with pattern guards, copy bindings, impls, and structs #3370

pcwalton opened this issue Sep 4, 2012 · 1 comment
Labels
A-codegen Area: Code generation I-crash Issue: The compiler crashes (SIGSEGV, SIGABRT, etc). Use I-ICE instead when the compiler panics.

Comments

@pcwalton
Copy link
Contributor

pcwalton commented Sep 4, 2012

This code causes a free of garbage memory and crashes:

struct Url {
    scheme: ~str,
    port: Option<~str>
}

impl Url {
    fn normalized_url(&self) {
        match self.port {
            Some(copy port) if true => {}
            _ => {}
        }
    }
}

fn main() {
    let url: Url = Url {
        scheme: ~"http",
        port: None,
    };
    url.normalized_url();
}

Doesn't seem to be related to explicit self. The pattern guard is necessary in order to cause the crash.

@bblum
Copy link
Contributor

bblum commented Sep 4, 2012

Dup of #3291, I believe.

@bblum bblum closed this as completed Sep 4, 2012
RalfJung pushed a commit to RalfJung/rust that referenced this issue Mar 15, 2024
windows: remove support for slim rwlock

Since rust-lang#121956 we don't need it any more, and we are generally short on Windows staff so reducing the amount of code we have to test and maintain sounds like a good idea.

The InitOnce stuff is still used by `thread_local_key::StaticKey` on 64bit windows-gnu.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-codegen Area: Code generation I-crash Issue: The compiler crashes (SIGSEGV, SIGABRT, etc). Use I-ICE instead when the compiler panics.
Projects
None yet
Development

No branches or pull requests

2 participants