Cranelift: interpreter traps on `srem INT_MIN, -1` instead of returning 0
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- Meno di un'ora
- Idoneità per principianti
- 86/100
Direzione di ricerca
Parti dall'implementazione di DataValue::srem nell'interprete sotto cranelift/interpreter/, confrontandone il controllo di overflow con quello di sdiv; la correzione consiste nel rimuovere il trap INT_MIN, -1 per il resto in modo che restituisca 0. Riproduci con il file .clif dell'issue tramite clif-util test test.clif (solo test interpret fallisce). Si considera concluso quando il caso di test sopra indicato supera test interpret e il caso viene aggiunto come filetest sotto cranelift/filetests/.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
srem only traps on a zero divisor, and srem INT_MIN, -1 is 0. Native
code agrees, and so does the mid-end rule srem x, -1 => 0. The
interpreter's DataValue::srem, however, copies sdiv's overflow check and
traps with int_ovf.
.clif Test Case
test interpret
test run
target aarch64
function %f(i32, i32) -> i32 {
block0(v0: i32, v1: i32):
v2 = srem v0, v1
return v2
}
; run: %f(0x80000000, -1) == 0
Steps to Reproduce
clif-util test test.clif
Expected Results
Both test interpret and test run pass.
Actual Results
test run passes. test interpret fails:
Unexpected returned control flow: Trap(User(TrapCode(252)))
Versions and Environment
Cranelift version or commit: 73b04cff33
Operating system: macOS 15.8.1
Architecture: aarch64
- Lingua principale
- Rust
- Stelle
- 18.7k
- Fork
- 1.9k
- Merge medio
- 21h 22m
- PR unite (30g)
- 315
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi 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.
Altre issue di bytecodealliance/wasmtime
-
bug wasm-proposal:exceptions wasmtime:debugging
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
bytecodealliance/wasmtime#14102 ·
I maintainer di solito rispondono entro 1 giorno
-
wasm-proposal:gc
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
bytecodealliance/wasmtime#13808 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
cranelift cranelift:area:clif cranelift:goal:optimize-speed enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
bytecodealliance/wasmtime#1598 · 9 commenti · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 72/100
bytecodealliance/wasmtime#14794 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 42/100
bytecodealliance/wasmtime#14790 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di bytecodealliance/wasmtime
Issue simili
-
area:gc-repack-output bug factory:dogfood factory:triaged priority:p3 type:bug type:ux
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
gitbutlerapp/grit#1161 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
feature
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
-
priority: low
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
storytold/photocraft#7520 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno