J'ai un code assembleur PowerPC traduit par un compilateur croisé gcc avec cette fonction:Comment faire pour supprimer « avertissement: le contrôle atteint la fin de la fonction non vide »
uint32_t fill_cache(void)
{
__asm__ ("addi 3, 0, 0\n"); /* R3 = 0 */
/* More asm here modifying R3 and filling the cache lines. */
}
qui, sous le PowerPC EABI, retourne le valeur calculée en R3. Lors de la compilation, je reçois
foo.c:105: warning: control reaches end of non-void function
Y at-il un moyen d'apprendre à gcc qu'une valeur est réellement retournée? Ou y a-t-il un moyen de supprimer l'avertissement (sans supprimer -Wall ou en ajoutant -Wno- *)? Je souhaite supprimer très sélectivement cet avertissement uniquement pour cette fonction afin de laisser le niveau d'alerte générale aussi élevé que possible.
L'annulation de cette fonction n'est pas une option car la valeur calculée est requise par l'appelant.