← All posts tagged ub

borman

/Совершенно случайно/ обнаружил занятное.

Допустим, кто-то опечатался, и поэтому у нас есть функция

bool test() {
  return test();
}


При компиляции, GCC выдает логичное:

test():
.L2:
 jmp .L2
 

Но Clang (3.4.0, -O2) удивляет, особенно если обнаружить это после запуска:

test():                               # @test()
 xorl %eax, %eax
 ret

Вот так вот.