как может gcc 6 опция «-Wmleleading-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 space «неизвестно» gcc из-за того, что оно может быть 4 или 8 или даже когда-либо …

Это невозможно. Разработчики явно заявляют, что они основаны на наборе эвристик, настроенных на то, чтобы уловить большинство вводящих в заблуждение отступов без чрезмерного шума. Как и в случае с другими предупреждениями компилятора, будут ложные срабатывания и ложные негативы. Пусть текущая GCC освободится от большинства кодов с -Wall и плачет.