[BUG] `af_set_backend` is declared with the wrong parameter width
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 1/5
- Temps estimé
- Moins d'une heure
- Accessibilité débutants
- 88/100
Piste de recherche
Commencez dans src/core/backend.rs:7 et comparez af_set_backend aux déclarations voisines du même bloc extern. Consultez include/af/backend.h:24 pour confirmer le type enum C, mettez ensuite à jour la déclaration Rust afin qu’elle corresponde à l’ABI, puis exécutez les vérifications ou tests Rust du dépôt. C’est terminé lorsque la déclaration utilise la largeur de paramètre correcte et que les vérifications passent.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
extern "C" {
fn af_set_backend(bknd: u8) -> c_int;
The C signature (include/af/backend.h:24) is:
AFAPI af_err af_set_backend(const af_backend bknd);
af_backend is a C enum, i.e. 4-byte int under both MSVC and GCC. Declaring the parameter as u8 is an ABI type mismatch.
In practice it works, because rustc emits zeroext for the u8 argument and the callee reads a clean value from the full register — I checked the IR (declare noundef i32 @af_set_backend(i8 noundef zeroext)). So this is as a latent correctness issue rather than an active bug, but it should still be c_uint to match the C ABI.
The three neighbouring declarations in the same extern block already use c_uint/c_int correctly.
Found by Claude Opus 5.
- Langage dominant
- Rust
- Étoiles
- 827
- Forks
- 59
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
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.
Autres issues de arrayfire/arrayfire-rust
-
Bug
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
arrayfire/arrayfire-rust#387 ·
-
Bug
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
arrayfire/arrayfire-rust#386 ·
-
Bug
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
arrayfire/arrayfire-rust#384 ·
-
Bug
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 35/100
arrayfire/arrayfire-rust#385 · 1 commentaire ·
-
Bug
Difficulté 3/5 1-2 jours Accessibilité débutants 45/100
arrayfire/arrayfire-rust#382 ·
Toutes les issues de arrayfire/arrayfire-rust
Issues similaires
-
has_tail_capacity wraps and get_writable_raw_unchecked commits raw_len before the bounds check Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
stratum-mining/stratum#2404 ·
-
bug ci good first issue
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
Eynzof/Hermes-CN-Desktop#610 ·
-
Axis areas are always keyboard-focusable (Sense::drag), even with allow_axis_zoom_drag(false) Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100