[Migrated] asm reference to non-existent value causes ICE
Nessuno ha ancora preso questa issue.
- Lingua principale
- Rust
- Stelle
- 3.4k
- Fork
- 126
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
Issue automatically imported from old repo: https://github.com/EmbarkStudios/rust-gpu/issues/518
Old labels: t: bug,a: ice,a: error messages,a: asm
Originally creatd by XAMPPRocky on 2021-03-22T07:37:30Z
If you pass a reference to malformed instruction, it will cause the compiler to panic, when it should fail just fail to compile.
Rust
#[spirv(fragment)]
pub fn foo() {
asm! {
"%u32 = OpTypeInte 32 0",
"%zero = OpConstant %u32 0",
}
Error
error: unknown spirv instruction OpTypeInte
--> /Users/erin.power/src/rust-gpu2/crates/spirv-std/src/arch/barrier.rs:5:5
|
5 | / asm! {
6 | | "%u32 = OpTypeInte 32 0",
7 | | "%execution = OpConstant %u32 {execution}",
8 | | // "%memory = OpConstant %u32 {memory}",
... |
13 | | // semantics = const SEMANTICS as u8,
14 | | }
| |_____^
thread 'rustc' panicked at 'Tried to lookup value that wasn't a type, or has no definition', crates/rustc_codegen_spirv/src/spirv_type.rs:674:14
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
error: internal compiler error: unexpected panic
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia riproducendo l’esempio asm malformato con l’istruzione OpTypeInte sconosciuta. Leggi crates/rustc_codegen_spirv/src/spirv_type.rs intorno alla riga 674 e segui la ricerca raggiunta dopo l’errore di istruzione sconosciuta. Il lavoro è completato quando l’input non riesce a compilare con un errore e non si verifica né un compiler panic né un internal compiler error.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- rust
- Ambito
- compilers
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Attiva
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 65/100