Comments (5)
from rust.
There is also a ProofTreeVisitor issue causing an ICE when compiling alloc which I will handle in a separate PR.
this is probably the same problem here.
When compiling ./library/alloc/src/lib.rs"
with 2021, we run into Sorts(ExpectedFound { expected: string::String, found: str })
but I have not bothered trying to reduce that 😅
from rust.
The original code already produces that ICE (so I guess that via specialization-overlap-projection.rs
this is already a known issue?), and is a check-pass
test. In these situations, your reduction procedure could just check that the flag is the cause of the error first, and then minimize the code.
That is, instead of reducing with a condition like rustc code.rs -Znext-solver=coherence &| grep ICE
, using a condition like rustc code.rs && rustc code -Znext-solver=coherence &| grep ICE
.
This would keep the *-pass
property, and fuzz deeper within rustc by not being limited by unrelated basic syntax errors in general. I mean, unless you're fuzzing diagnostics or failure paths in particular for *-fail
tests, which is useful in its own right. Otherwise, the procedure still has a bias towards that, but it's not intentional, and coverage is reduced.
#![feature(specialization)]
trait Assoc {
type Output;
}
impl<T> Assoc for T {
default type Output = bool;
}
impl Assoc for u16 { type Output = u16; }
trait Foo {}
impl Foo for u32 {}
impl Foo for <u16 as Assoc>::Output {}
fn main() {}
from rust.
There is no fuzzing involved here.
The ICE was detected on the original
straight form the rustc repo and the responsible compiler flag was found (all unrelated compiler flags are dismissed).
Then with the reduced set of flags, I run https://github.com/langston-barrett/treereduce to automatically reduce the file, as long as the ice still triggers with the reduced set of flags and this becomes reduced
snippet from which I generate the markdown report.
from rust.
Right I'm saying this can be suboptimal as it introduces new unrelated errors. It turned something that worked without the flag and ICEd with it, into something that fails without the flag and still ICEs with the flag. This can be prevented during reduction.
The reduced snippet would have to be fixed to remove the unrelated errors when fixing the ICE, or worse it could be ignored in favor of the original unreduced piece of code.
from rust.
Related Issues (20)
- ICE: missing type for `static` item crashes due to LazyCell/LazyLock HOT 1
- Detect unsized expressions that are deref expressions like `*""`
- Tracking Issue for `rwlock_downgrade` HOT 4
- Surprising behavior of `'label: for`
- `slice.iter().take_while(f).count()` produces suboptimal assembly code HOT 1
- Incorrect code generated from inline assembly with `inout` register on riscv32im-unknown-none-elf HOT 6
- Performance regression with `get_many_mut()` HOT 1
- The compiler does not report errors for recursive calls that can not be ended HOT 2
- x86_64-win7-windows-msvc target cannot run HOT 11
- Permit library-only and binary-only dependencies HOT 3
- mut struct member var(ref) bind to new obj still hint: does not live long enough HOT 2
- Should `Mutex` and `Condvar` respect priorities? HOT 2
- ICE: `unable to construct a valtree for the unevaluated constant` HOT 3
- fs::read_to_string(config.src.join("src/ci/channel")) failed with No such file or directory (os error 2) HOT 4
- Regression in `type annotations needed for` check between 1.79 and 1.80 HOT 2
- Jump threading MIR opt unsoundly uses bitpattern equality for floats HOT 15
- ICE: `trait takes 1 generic argument but 0 generic arguments were supplied` HOT 2
- Bug when using `cargo check` (my program works with `cargo run`) HOT 1
- zero-sized slices are sometimes placed at 0x1 (1.79+) HOT 16
- Documentation of default value for config.toml's `rust.channel` is inaccurate
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rust.