Ho un po 'di codice assembly PowerPC tradotto con un cross compiler gcc con questa funzione:Come sopprimere "attenzione: il controllo raggiunge il termine della funzione non-vuoto"
uint32_t fill_cache(void)
{
__asm__ ("addi 3, 0, 0\n"); /* R3 = 0 */
/* More asm here modifying R3 and filling the cache lines. */
}
che, sotto il PowerPC EABI, restituisce il valore calcolato in R3. Quando compilo ottengo
foo.c:105: warning: control reaches end of non-void function
C'è un modo per insegnare a gcc che un valore viene effettivamente restituito? O c'è un modo per sopprimere l'avviso (senza rimuovere -Wall o aggiungendo -Wno- *)? Mi piacerebbe sopprimere molto selettivamente questo avviso solo per questa funzione per lasciare il livello di avviso generale più alto possibile.
Non è un'opzione per rendere questa funzione non valida poiché il chiamante richiede il valore calcolato.