[Migrated] ZST's in structs cause invalid pointer casts
Nessuno ha ancora preso questa issue.
- Lingua principale
- Rust
- Stelle
- 3.4k
- Fork
- 125
- 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/1037
Old labels: t: bug,s: qptr may fix
Originally creatd by TrueDoctor on 2023-04-18T16:53:55Z
Expected Behaviour
The code should compile
Example & Steps To Reproduce
code:
#[spirv(fragment)]
pub fn main(x: (usize, ())) {
drop(&x.1);
}
result:
error: Cannot cast between pointer types
--> examples/shaders/simplest-shader/src/lib.rs:44:55
|
44 | #[spirv(fragment)] pub fn main(x: (usize, ())) { drop(&x.1); }
| ^^^^
|
= note: from: *u32
= note: to: *u8
error: Cannot offset a pointer to an arbitrary element
--> examples/shaders/simplest-shader/src/lib.rs:44:55
|
44 | #[spirv(fragment)] pub fn main(x: (usize, ())) { drop(&x.1); }
| ^^^^
error: Cannot cast between pointer types
--> examples/shaders/simplest-shader/src/lib.rs:44:50
|
44 | #[spirv(fragment)] pub fn main(x: (usize, ())) { drop(&x.1); }
| ^^^^^^^^^^
|
= note: from: *u8
= note: to: *struct () { }
System Info
- Rust: [e.g. 1.49.0-nightly (1eaadebb3 2020-10-21)]
- OS: linux 6.2.9-arch1-1
- GPU: Intel Iris Plus Graphics G7
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 con il riproduttore in examples/shaders/simplest-shader/src/lib.rs, in particolare con la funzione #[spirv(fragment)] e il riferimento a x.1. Esegui l'esempio ed esamina gli errori di conversione dei puntatori e di offset arbitrario. Il lavoro è completato quando questa struct dall'aspetto valido contenente un campo tuple di dimensione zero viene compilata senza questi errori.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- rust
- Ambito
- compilers
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 38/100