Ma comprehension (d'apres entre autres des messages de John Mashey sur comp.arch relatant le contexte de l'introduction de volatile dans le langage C) c'est que volatile doit alors suffire, mais c'est a charge de l'utilisateur de ne le faire que sur des zones non cachees (et donc il faudrait que volatile introduise des barrieres sur Sparc puisqu'il n'y a pas moyen de regler le MMU pour qu'elles ne soient pas necessaires).
Mais ce qui est sur c'est qu'au mieux la semantique desiree de volatile est sous-specifiee, au pire elle n'est pas specifiable dans le modele d'execution utilise par les normes C et C++ pour specifier leur semantique.
Partager