[BUG] `af_set_backend` is declared with the wrong parameter width
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 1/5
- Geschätzter Aufwand
- Unter einer Stunde
- Anfängerfreundlichkeit
- 88/100
Rechercherichtung
Beginne in src/core/backend.rs:7 und vergleiche af_set_backend mit den benachbarten Deklarationen im selben extern-Block. Prüfe include/af/backend.h:24, um den C-Enum-Typ zu bestätigen, aktualisiere dann die Rust-Deklaration so, dass sie zur ABI passt, und führe anschließend die Rust-Prüfungen oder -Tests des Repositorys aus. Die Aufgabe ist erledigt, wenn die Deklaration die korrekte Parameterbreite verwendet und die Prüfungen erfolgreich sind.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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.
- Vorherrschende Sprache
- Rust
- Sterne
- 827
- Forks
- 59
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus arrayfire/arrayfire-rust
-
Bug
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
arrayfire/arrayfire-rust#387 ·
-
Bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
arrayfire/arrayfire-rust#386 ·
-
Bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
arrayfire/arrayfire-rust#384 ·
-
Bug
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
arrayfire/arrayfire-rust#385 · 1 Kommentar ·
-
Bug
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 45/100
arrayfire/arrayfire-rust#382 ·
Alle Issues in arrayfire/arrayfire-rust
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
Eynzof/Hermes-CN-Desktop#610 ·
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
gitbutlerapp/gitbutler#15998 · 1 Kommentar ·
-
bug triage:deciding
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
open-telemetry/otel-arrow#4132 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100