En effet, c'est difficile.
Blâmer l'outil m'est arrivé cette semaine, avec Doxygen, alors qu'il ne faisait que ce que je lui avais demandé... enfin, ce que j'avais apparemment oublié, c'est de mettre quelques PREDEFINED pour contourner des limitations connues de Doxygen lui-même, comme le fait de ne pas skipper purement et simplement les __attribute__.
A la limite, on ne lui demande pas de comprendre les __attribute__... mais ça serait sympa qu'il arrête de faire n'importe quoi quand il rencontre des trucs aussi courants qu' "__attribute__((aligned(x)))" dans du code (pas rare...) qui utilise directement les attributes, sans les wrapper dans une macro nommée par exemple ALIGNED.
(Traiter les __attribute__ est le sujet d'un bug report déjà ancien, mais pas résolu)
Enfin bref, comme je ne l'avais pas paramétré comme il faut pour contourner ses limitations, Doxygen parsait n'importe quoi, et le résultat visible était que non seulement certaines fonctions n'apparaissaient pas dans les callgraphs, mais en plus, il y avait des fonctions nommées "if", "for", "switch" et "__volatile__"

Même si j'en avais relativement envie, j'ai évité d'utiliser "PEBKAC" pour répondre hier au post que j'ai mis en lien dans
./23 
Etre blessant, même si on a raison, n'est pas vraiment la bonne façon de se faire comprendre.