Afin de prendre une page de sales (commutation sur le bit d'impureté dans la page d'entrée de la table), je touche les premiers octets de la page comme ceci:
pageptr[0] = pageptr[0];
Mais, dans la pratique, gcc va ignorer la déclaration de morts magasin élimination. Afin de prévenir l'optimisation de gcc, je ré-écrire l'instruction comme suit:
volatile int tmp;
tmp = pageptr[0];
pageptr[0] = tmp;
Il semble que l'astuce fonctionne, mais un peu laid. Je voudrais savoir est-il des directives ou de syntaxe qui a le même effet? Et je ne veux pas utiliser un -O0
drapeau, car il apportera de grandes performances.