https://kernelnewbies.org/FAQ/LikelyUnlikely


의 예제함수


#define likely(x) __builtin_expect(!!(x), 1) #define unlikely(x) __builtin_expect(!!(x), 0) int main(char *argv[], int argc) { int a; /* Get the value from somewhere GCC can't optimize */ a = atoi (argv[1]); if (unlikely (a == 2)) a++; else a--; printf ("%d\n", a); return 0; }


gcc -O2 test test.c로 컴파일 해서 실행시키니 뭘해도 SEGFAULT


한번 char *argv[], int argc 대신 int argc, char *argv[] 해보니 돌아감



저 예시코드가 잘못된거야? 아니면 내 환경이 이상한거야? 아니면 컴파일을 내가 잘못한건가??