Houlà !!
Désolé d'avoir sousestimé/mal compris ce thread.
C'est en effet une erreur de notre part.
Je viens de la corriger et patcher tous vos repos : https://moodlearchive.epfl.ch/2019-2020/mod/forum/discuss.php?d=32096#p64934
Pour vous répondre :
ce pattern (do { ... } while(0)) dans les macros est utilisé pour 2 choses :
- justement localiser les définitions des variables qui y seraient faites ;
(mais ici c'est évidemment c'est qu'il NE faut PAS faire (!!) vu que le bus est partagé par/délégué au CPU) ; - [mineur] pour permettre une écriture de la macro similaire à une expression : la terminer par un point-virgule.
Cette erreur nous a échappé par manque de vigilance et aussi parce que sur nos machines nous n'avions pas le SEGV (mais la faute était bien là quand même !!).
Toutes nos excuses pour ce bug et la perte de temps qu'il a pu engendré.
Toutes nos excuses pour ce bug et la perte de temps qu'il a pu engendré.