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