Цитата Сообщение от haywire Посмотреть сообщение
Но в аду им не позволит гореть современный компилятор. Он выправит этот код. Можете проверить.
Код:
#include <stdio.h>

int func (a)
char a;.
{
int b[60000];
int i;
  for (i =a; i != 60000; ++i)
    printf("%i: %c\n", i, b[i]);
}

int main()
{
  a('a');
}
Код:
gcc -O2 -c test.c
objdump -d -M intel test.o
Код:
Дизассемблирование раздела .text:

0000000000000000 <func>:
   0:   53                      push   rbx
   1:   40 0f be df             movsx  ebx,dil
   5:   48 81 ec 80 a9 03 00    sub    rsp,0x3a980
   c:   0f 1f 40 00             nop    DWORD PTR [rax+0x0]
  10:   48 63 c3                movsxd rax,ebx
  13:   89 de                   mov    esi,ebx
  15:   bf 00 00 00 00          mov    edi,0x0
  1a:   8b 14 84                mov    edx,DWORD PTR [rsp+rax*4]
  1d:   83 c3 01                add    ebx,0x1
  20:   31 c0                   xor    eax,eax
  22:   e8 00 00 00 00          call   27 <func+0x27>
  27:   81 fb 60 ea 00 00       cmp    ebx,0xea60
  2d:   75 e1                   jne    10 <func+0x10>
  2f:   48 81 c4 80 a9 03 00    add    rsp,0x3a980
  36:   5b                      pop    rbx
  37:   c3                      ret    

Дизассемблирование раздела .text.startup:

0000000000000000 <main>:
   0:   bf 61 00 00 00          mov    edi,0x61
   5:   31 c0                   xor    eax,eax
   7:   e9 00 00 00 00          jmp    c <main+0xc>
Код:
gcc версия 4.8.2 (GCC)
Дабы предотвратить разговоры в стиле "gcc - несовременный компилятор", ожидаю примеры генерации кода с упомянутой оптимизацией и указанием используемого компилятора и его версии.