Bonjour,
j'utilise gcc pour PPC 5777C avec l'option -Og et je cherche à obtenir une traçabilité directe entre le source C et le code objet, en d'autres mots garder les ruptures de séquence présentes dans le source.
Le but est de pouvoir réaliser de la couverture structurelle sur le code objet et pouvoir le raccrocher au niveau source.
Par exemple, je cherche à interdire à utiliser l'utilisation d'un or ou and sur des expressions logiques:
if (a != FALSE || b != FALSE || c != FALSE || d != FALSE) {
.loc 1 8 0
15 0000 7C642378 or 4,3,4
16 .LVL1:
17 0004 7C842B78 or 4,4,5
18 0008 7C893379 or. 9,4,6
19 000c 40820014 bne- 0,.L4
9:1.c **** d -= 1;
Ainsi dans le source j'ai 4 tests (ruptures de séquence) mais dans le code objet je n'en récupère qu'une, je souhaite donc dans le code exécutable avoir 4 comparaisons et 4 branchements.
Comment faire sans pour autant supprimer toutes les optimisations ?
Si je n'utilise pas d'option -O1, -O2, ... -Og alors j'ai ma traçabilité.
Partager