Можно ли оптимизировать компилятор для удаления бесконечных циклов, который не изменяет никаких данных, например
while(1)
/* noop */;
Из анализа графика потока данных компилятор может получить, что такой цикл является "мертвым кодом" без каких-либо побочных эффектов.
Удаление бесконечных циклов, запрещенных стандартами C90/C99?
Соответствуют ли стандартам C90 или C99 компилятору для удаления таких циклов?
Обновление: "Microsoft C версии 6.0 выполнила эту оптимизацию", см. ссылку в кафе.
label: goto label;
return 0;
будет преобразовано в
return 0;