Occhio a non fare confusione.

Se in una funzione che scrivi tu non vuoi restituire nulla, devi mettere `void` come tipo di ritorno; tuttavia, il main standard ritorna necessariamente int, non puoi mettere void; il valore restituito viene fornito al sistema operativo come "codice di uscita" del tuo programma; normalmente 0 significa che è andato tutto bene, comunque è utile sostanzialmente solo se il tuo programma viene chiamato da script o da altri programmi.

In generale, se ometti il tipo di ritorno (come avevi fatto inizialmente nel tuo codice), la regola (anche se è deprecata) è che il compilatore assume automaticamente che tu intenda "int"; una volta che hai specificato un tipo di ritorno, non puoi omettere il return - o meglio, il compilatore magari compila pure il tuo codice, ma è "undefined behavior" (il programma generato potrebbe non funzionare correttamente) e può segnalarti un warning come nel tuo caso.