[Migrated] ZST's in structs cause invalid pointer casts
Personne n'a encore pris cette issue.
- Langage dominant
- Rust
- Étoiles
- 3.4k
- Forks
- 126
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
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
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par le reproducteur dans examples/shaders/simplest-shader/src/lib.rs, en particulier la fonction #[spirv(fragment)] et la référence à x.1. Exécutez l’exemple et examinez les erreurs de conversion de pointeur et de décalage arbitraire. C’est terminé lorsque cette structure d’apparence valide contenant un champ de tuple de taille nulle se compile sans ces erreurs.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- rust
- Domaine
- compilers
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 38/100