Рассмотрим следующий фрагмент кода:
unsigned global;
while(global);
global
изменяется в функции, вызываемой IRQ. Однако g++ удаляет тест "is-not-zero" и переводит цикл while в бесконечный цикл.
Отключение оптимизации компилятора решает проблему, но предлагает ли С++ для него конструкцию языка?