gcc предоставляет дополнительные встроенные функции для оптимизации.
Один из них - void __builtin_trap (void)
, который по существу здесь, чтобы прервать выполнение программы, выполнив незаконную команду.
Из документа:
Функция__ builtin_trap заставляет программу выйти из строя. GCC реализует это с помощью механизма, зависящего от цели (например, преднамеренно выполнение незаконной инструкции) или путем вызова прерывания. Механизм может отличаться от выпуска к выпуску, поэтому вы не должны полагаться на особая реализация.
Зачем вам использовать это, а не exit(1)
или abort
? Почему разработчики gcc рассматривают это как функцию оптимизации?