Удаление неиспользуемых переменных
Объявленные, но неиспользуемые переменные, удаляются всеми современными компиляторами. Древние оптимизаторы удаляли лишь переменные, к которым не происходило ни одного обращения, сейчас же оптимизатор строит своеобразное "абстрактное дерево" и ветви, ведущие в никуда полностью обрубаются.
В приведенном ниже примере, vc, icl и gcc удаляют все три переменных— a, b и с:
main(int n, char **v)
{
int a,b,c;
a
=n;
b
= a + 1;
c
= 6*b; // переменная c не используется, а значит переменные a
и b
лишнее
return n;
}