gcc 6 옵션 "-Wmisleading-indentation"은 어떻게 안정적으로 작동합니까?

gcc 6 옵션 "-Wmisleading-indentation"은 어떻게 안정적으로 작동합니까?

독서GCC 6 릴리스 시리즈 변경 사항, 새로운 기능 및 수정 사항나는 이 새로운 옵션이 매우 흥미롭다고 생각했습니다 -Wmisleading-indentation.

-Wmisleading-indentation warns about places where the indentation of the code
    gives a misleading idea of the block structure of the code to a human reader.
    For example, given CVE-2014-1266:

sslKeyExchange.c: In function 'SSLVerifySignedServerKeyExchange':
sslKeyExchange.c:631:8: warning: statement is indented as if it were guarded by... [-Wmisleading-indentation]
        goto fail;
        ^~~~
sslKeyExchange.c:629:4: note: ...this 'if' clause, but it is not
    if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
    ^~

tab spacegcc들여쓰기가 4나 8 또는 심지어 무엇이든 될 수 있기 때문에 들여쓰기가 "알 수 없음"일 때 옵션이 어떻게 오해의 소지가 있는 들여쓰기를 안정적으로 식별할 수 있는지 궁금합니다 .

답변1

캔트. 개발자명확하게 설명하세요포착하기 위한 일련의 경험적 방법을 기반으로 합니다.최대너무 많은 소음 없이 오해의 소지가 있는 들여쓰기입니다. 다른 컴파일러 경고와 마찬가지로 거짓 긍정 및 거짓 부정이 발생할 수 있습니다. 허락하다현재의GCC는 대부분의 코드에서 느슨 -Wall하고 울립니다.

관련 정보