emscripten-core / emscripten-core/emscripten

warning: indirection of non-volatile null pointer will be deleted, not trap

Aperta
#12,876 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
wontfix
Lingua principale
C++
Stelle
27.6k
Fork
3.6k
Merge medio
1g 14h
PR unite (30g)
125

Descrizione

STR:
```c
#include

int main()
{
printf("Data at address zero: %x\n", *(int*)0);
}
```

```
E:\code\tgifelse>emcc a.c -o a.js
a.c:5:39: warning: indirection of non-volatile null pointer will be deleted, not trap [-Wnull-dereference]
printf("Data at address zero: %x\n", *(int*)0);
^~~~~~~~
a.c:5:39: note: consider using __builtin_trap() or qualifying pointer with 'volatile'
1 warning generated.

E:\code\tgifelse>node a.js
Data at address zero: 63736d65
```

This warning looks odd, because the memory load did not get deleted like the warning threatened to do.

The program behaved like I expected it to: load and print the u32 at address zero, which contains the magic bytes for Emscripten stack check.

I wonder if that LLVM warning message should somehow be adjusted for Wasm? Maybe `"warning: indirection of non-volatile null pointer will actually (attempt to) load from memory address zero, and not trap"`?

(We do already have the `-s SAFE_HEAP=1` build mode that will add the necessary checks for this for correctness checks)

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia con il comando emcc e la riproduzione minima in C, quindi traccia come viene segnalato l’avviso di dereferenziazione del puntatore nullo durante la compilazione Wasm. Il lavoro è completato quando è stato determinato se l’avviso descrive accuratamente il caricamento osservato dall’indirizzo zero e identificato il comportamento appropriato per questa destinazione.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
c, wasm
Ambito
compilers
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.