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

Failure during stage1 libcore when removing a drop block from core::unstable #5378

Closed
bstrie opened this issue Mar 14, 2013 · 2 comments
Closed
Assignees
Labels
I-crash Issue: The compiler crashes (SIGSEGV, SIGABRT, etc). Use I-ICE instead when the compiler panics.
Milestone

Comments

@bstrie
Copy link
Contributor

bstrie commented Mar 14, 2013

The Unlock struct in core::unstable contains a drop block. Removing it causes this error:

compile_and_link: x86_64-unknown-linux-gnu/stage1/lib/rustc/x86_64-unknown-linux-gnu/lib/libcore.so
/media/linhaus/rust/src/libcore/core.rc:54:7: 54:23 warning: unknown `deny` attribute: `deprecated_self`
/media/linhaus/rust/src/libcore/core.rc:54 #[deny(deprecated_self)];
                                                  ^~~~~~~~~~~~~~~~
/media/linhaus/rust/src/libcore/flate.rs:20:4: 20:18 warning: unused import
/media/linhaus/rust/src/libcore/flate.rs:20 use rand::RngUtil;
                                                ^~~~~~~~~~~~~~
/media/linhaus/rust/src/libcore/stackwalk.rs:83:20: 83:33 warning: argument 1 uses by-copy mode
/media/linhaus/rust/src/libcore/stackwalk.rs:83 fn frame_address(f: &fn(++x: *u8)) {
                                                                    ^~~~~~~~~~~~~
/media/linhaus/rust/src/libcore/rt/uv.rs:225:8: 235:9 warning: argument 3 uses by-copy mode
/media/linhaus/rust/src/libcore/rt/uv.rs:225         extern fn read_cb(stream: *uvll::uv_stream_t,
/media/linhaus/rust/src/libcore/rt/uv.rs:226                           nread: ssize_t, ++buf: Buf) {
/media/linhaus/rust/src/libcore/rt/uv.rs:227             rtdebug!("buf addr: %x", buf.base as uint);
/media/linhaus/rust/src/libcore/rt/uv.rs:228             rtdebug!("buf len: %d", buf.len as int);
/media/linhaus/rust/src/libcore/rt/uv.rs:229             let mut stream_watcher: StreamWatcher =
/media/linhaus/rust/src/libcore/rt/uv.rs:230                 NativeHandle::from_native_handle(stream);
                                             ...
pthread_mutex_destroy(&_mutex) failed in /media/linhaus/rust/src/rt/sync/lock_and_signal.cpp at line 67, result = 16 (Device or resource busy)
Aborted
make: *** [x86_64-unknown-linux-gnu/stage1/lib/rustc/x86_64-unknown-linux-gnu/lib/libcore.so] Error 134
@graydon
Copy link
Contributor

graydon commented Apr 30, 2013

assigning bug; change assignment if you disagree

@ghost ghost assigned pcwalton Apr 30, 2013
@alexcrichton
Copy link
Member

Looks like this was fixed in 2e907a3

tesuji pushed a commit to tesuji/rustc that referenced this issue Jun 9, 2020
…hansch

New lint: `unnested_or_patterns`

changelog: Adds a lint `unnested_or_patterns`, suggesting `Some(0 | 2)` as opposed to `Some(0) | Some(2)`. The lint only fires on compilers capable of using `#![feature(or_patterns)]`.

- The lint is primarily encoded as a pure algorithm which to unnest or-patterns in an `ast::Pat` (`fn unnest_or_patterns`) through a `MutVisitor`. After that is done, and assuming that any change was detected, then `pprust::pat_to_string` is used to simply convert the transformed pattern into a suggestion.

- The PR introduces a module `utils::ast_utils` with a bunch of functions for spanless & nodeless equality comparisons of ASTs.

cc rust-lang#54883
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
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

4 participants