gcc는 왜 구조체로부터 추측적으로 적재할 수 있는가? 결함이 발생할 수 있는 gcc 최적화 및 사용자 코드 표시 예제 아래 코드 조각의 'foo' 함수는 구조체 멤버 A 또는 B 중 하나만 로드된다. 적어도 그것은 최적화되지 않은 코드의 의도다. typedef struct { int A; int B; } Pair; int foo(const Pair *P, int c) { int x; if (c) x = P->A; else x = P->B; return c/102 + x; } gcc -O3의 내용은 다음과 같다. mov eax, esi mov edx, -1600085855 test esi, esi mov ecx, DWORD PTR [rdi+4] B** cmovne ecx, DWORD PTR [rdi] A..