Skip to content

Fix #10755 - ICE: --linker= #10997

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

Merged

Conversation

cadencemarseille
Copy link
Contributor

Trap the io_error condition so that a more informative error message is
displayed when the linker program cannot be started, such as when the
name of the linker binary is accidentally mistyped.

closes #10755

@alexcrichton
Copy link
Member

This should definitely have a test as well. I think that compile-flags with error-pattern in a compile-fail test would do nicely in this case.

@cadencemarseille
Copy link
Contributor Author

The compile-flags system is pretty cool! 😃 I have uploaded a new patch with a test.

Note: I removed the "ar"/archiver-specific changes because I could not find a way to trigger the "could not exec the archiver" error.

@@ -310,7 +314,9 @@ pub mod write {
assembly.as_str().unwrap().to_owned()];

debug!("{} '{}'", cc, args.connect("' '"));
match run::process_output(cc, args) {
let opt_prog = io_error::cond.trap(|_| { /*empty*/ })
.inside(|| -> Option<ProcessOutput> run::process_output(cc, args));
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Huh, I was unaware that this was even possible to name the return type! This would all look nicer as:

let opt_prog = {
    let _g = io::ignore_io_error();
    run::process_output(cc, args)
};

Trap the io_error condition so that a more informative error message is
displayed when the linker program cannot be started, such as when the
name of the linker binary is accidentally mistyped.

closes rust-lang#10755
bors added a commit that referenced this pull request Dec 22, 2013
…ing-linker, r=alexcrichton

Trap the io_error condition so that a more informative error message is
displayed when the linker program cannot be started, such as when the
name of the linker binary is accidentally mistyped.

closes #10755
@bors bors closed this Dec 22, 2013
@bors bors merged commit f24787d into rust-lang:master Dec 22, 2013
flip1995 pushed a commit to flip1995/rust that referenced this pull request Apr 4, 2024
…ednet

new lint `legacy_numeric_constants`

Rework of rust-lang#10997

- uses diagnostic items
- does not lint imports of the float modules (`use std::f32`)
- does not lint usage of float constants that look like `f32::MIN`

I chose to make the float changes because the following pattern is actually pretty useful
```rust
use std::f32;
let omega = freq * 2 * f32::consts::PI;
```
and the float modules are not TBD-deprecated like the integer modules.

Closes rust-lang#10995

---

changelog: New lint [`legacy_numeric_constants`]
[rust-lang#12312](rust-lang/rust-clippy#12312)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

ICE: --linker=
3 participants