Vous devez -Winline
pour obtenir des avertissements sur les fonctions non inline.
Si vous voulez vérifier cela, vous pouvez essayer de prendre l'adresse d'une fonction inline (ce qui l'empêche d'être inline) et vous devriez voir un avertissement.
#include <stdio.h>
static inline __attribute__ ((always_inline)) int add(int a, int b)
{
return a + b;
}
int main(void)
{
printf("%d\n", add(21, 21));
printf("%p\n", add);
return 0;
}
EDIT
J'ai essayé de produire un avertissement avec le code ci-dessus et d'autres exemples sans succès - il semble que le comportement des versions actuelles de gcc et clang peut avoir changé dans ce région. Je vais supprimer cette réponse si je ne peux pas coder avec un meilleur exemple qui génère un avertissement.
Vous avez besoin de '-Winline' –
J'ai ajouté ce drapeau - mais rien ne se passe. Il avertit seulement quand il ne peut pas en ligne? Puis-je lire quelque part à ce sujet? – tower120
Vous pouvez le tester en prenant l'adresse de la fonction pour l'empêcher d'être inline et ensuite vous devriez voir un avertissement, –