Clang Warnings
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
Direzione di ricerca
Inizia con kilo.c e le diagnostiche Clang elencate, raggruppando per posizione gli avvisi relativi a padding, conversioni, shadowing e codice irraggiungibile. Esegui la build Clang del progetto o i controlli degli avvisi, se disponibili, quindi verifica che gli avvisi elencati siano stati risolti senza modificare il comportamento dell’editor.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
kilo.c:71:8: warning: padding size of 'struct editorSyntax' with 4 bytes to alignment boundary [-Wpadded]
struct editorSyntax {
^
kilo.c:106:11: warning: padding struct 'struct editorConfig' with 4 bytes to align 'filename' [-Wpadded]
char *filename; /* Currently open filename */
kilo.c:85:11: warning: padding struct 'struct erow' with 4 bytes to align 'chars' [-Wpadded]
char *chars; /* Row content. */
^
kilo.c:81:16: warning: padding size of 'struct erow' with 4 bytes to alignment boundary [-Wpadded]
typedef struct erow {
kilo.c:229:20: warning: implicit conversion changes signedness: 'int' to 'unsigned long' [-Wsign-conversion]
raw.c_iflag &= ~(BRKINT | ICRNL | INPCK | ISTRIP | IXON);
~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kilo.c:231:20: warning: implicit conversion changes signedness: 'int' to 'unsigned long' [-Wsign-conversion]
raw.c_oflag &= ~(OPOST);
kilo.c:256:21: warning: implicit conversion loses integer precision: 'ssize_t' (aka 'long') to 'int' [-Wshorten-64-to-32]
while ((nread = read(fd,&c,1)) == 0);
kilo.c:383:36: warning: implicit conversion changes signedness: 'int' to 'unsigned long' [-Wsign-conversion]
row->hl = realloc(row->hl,row->rsize);
~~~~~~~ ~~~~~^~~~~
kilo.c:485:28: warning: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Wshorten-64-to-32]
int klen = strlen(keywords[j]);
kilo.c:489:43: warning: implicit conversion changes signedness: 'int' to 'unsigned long' [-Wsign-conversion]
if (!memcmp(p,keywords[j],klen) &&
kilo.c:541:26: warning: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Wshorten-64-to-32]
int patlen = strlen(s->filematch[i]);
~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~
kilo.c:573:31: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
row->render = malloc(row->size + tabs*8 + nonprint*9 + 1);
kilo.c:594:50: warning: implicit conversion changes signedness: 'int' to 'unsigned long' [-Wsign-conversion]
E.row = realloc(E.row,sizeof(erow)*(E.numrows+1));
~ ~~~~~~~~~^~
kilo.c:596:64: warning: implicit conversion changes signedness: 'int' to 'unsigned long' [-Wsign-conversion]
memmove(E.row+at+1,E.row+at,sizeof(E.row[0])*(E.numrows-at));
kilo.c:599:22: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
E.row[at].size = len;
kilo.c:627:63: warning: implicit conversion changes signedness: 'int' to 'unsigned long' [-Wsign-conversion]
memmove(E.row+at,E.row+at+1,sizeof(E.row[0])*(E.numrows-at-1));
kilo.c:648:22: warning: implicit conversion changes signedness: 'int' to 'unsigned long' [-Wsign-conversion]
p = buf = malloc(totlen);
kilo.c:667:57: warning: implicit conversion changes signedness: 'int' to 'unsigned long' [-Wsign-conversion]
row->chars = realloc(row->chars,row->size+padlen+2);
~~~~~~~ ~~~~~~~~~~~~~~~~^~
kilo.c:674:50: warning: implicit conversion changes signedness: 'int' to 'unsigned long' [-Wsign-conversion]
row->chars = realloc(row->chars,row->size+2);
~~~~~~~ ~~~~~~~~~^~
kilo.c:678:22: warning: implicit conversion loses integer precision: 'int' to 'char' [-Wimplicit-int-conversion]
row->chars[at] = c;
kilo.c:685:42: warning: implicit conversion changes signedness: 'int' to 'unsigned long' [-Wsign-conversion]
row->chars = realloc(row->chars,row->size+len+1);
kilo.c:744:63: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned long') [-Wsign-conversion]
editorInsertRow(filerow+1,row->chars+filecol,row->size-filecol);
kilo.c:771:65: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned long') [-Wsign-conversion]
editorRowAppendString(&E.row[filerow-1],row->chars,row->size);
kilo.c:821:40: warning: implicit conversion changes signedness: 'ssize_t' (aka 'long') to 'size_t' (aka 'unsigned long') [-Wsign-conversion]
editorInsertRow(E.numrows,line,linelen);
~~~~~~~~~~~~~~~ ^~~~~~~
kilo.c:839:22: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned long') [-Wsign-conversion]
if (write(fd,buf,len) != len) goto writeerr;
~~~~~ ^~~
kilo.c:868:38: warning: implicit conversion changes signedness: 'int' to 'unsigned long' [-Wsign-conversion]
char *new = realloc(ab->b,ab->len+len);
~~~~~~~ ~~~~~~~^~~~
kilo.c:860:8: warning: padding size of 'struct abuf' with 4 bytes to alignment boundary [-Wpadded]
struct abuf {
^
kilo.c:939:30: warning: declaration shadows a local variable [-Wshadow]
char buf[16];
^
kilo.c:885:10: note: previous declaration is here
char buf[32];
^
kilo.c:996:33: warning: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned long') [-Wsign-conversion]
write(STDOUT_FILENO,ab.b,ab.len);
~~~~~ ~~~^~~
kilo.c:976:18: warning: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Wshorten-64-to-32]
int msglen = strlen(E.statusmsg);
~~~~~~ ^~~~~~~~~~~~~~~~~~~
kilo.c:994:22: warning: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Wshorten-64-to-32]
abAppend(&ab,buf,strlen(buf));
~~~~~~~~ ^~~~~~~~~~~
kilo.c:1005:47: warning: format string is not a string literal [-Wformat-nonliteral]
vsnprintf(E.statusmsg,sizeof(E.statusmsg),fmt,ap);
^~~
kilo.c:1057:33: warning: implicit conversion loses integer precision: 'int' to 'char' [-Wimplicit-int-conversion]
query[qlen++] = c;
~ ^
kilo.c:1090:44: warning: implicit conversion changes signedness: 'int' to 'unsigned long' [-Wsign-conversion]
saved_hl = malloc(row->rsize);
~~~~~~ ~~~~~^~~~~
kilo.c:1076:41: warning: implicit conversion loses integer precision: 'long' to 'int' [-Wshorten-64-to-32]
match_offset = match-E.row[current].render;
~ ~~~~~^~~~~~~~~~~~~~~~~~~~~~
kilo.c:1211:9: warning: 'break' will never be executed [-Wunreachable-code-break]
break;
kilo.c:1307:12: warning: 'return' will never be executed [-Wunreachable-code-return]
return 0;
- Lingua principale
- C
- Stelle
- 9.2k
- Fork
- 1k
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
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 antirez/kilo
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 68/100
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 35/100
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 55/100
-
Multi-line comment highlighting breaks after row deletionForse già presa @davidklassen l’ha presa 244 giorni fa. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 48/100
Tutte le issue di antirez/kilo
Issue simili
-
Policy query leaks host primary block (BSL_PrimaryBlock_deinit skipped) on two early-exit pathsAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
NASA-AMMOS/BSL#355 ·
I maintainer di solito rispondono entro 1 giorno
-
#242 leftovers: dated narrative and shas in the social-features test planForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
EchoTools/nevr-runtime#264 ·
I maintainer di solito rispondono entro 1 giorno
-
area/docdb kind/bug priority/medium status/awaiting-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
yugabyte/yugabyte-db#34873 ·
I maintainer di solito rispondono entro 1 giorno
-
[sqlcipher] update to 4.19.0Apertacategory:port-update
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
mypaint/libmypaint#209 ·