como a opção gcc 6 “-Wmisleading-indentation” funciona de forma confiável?

0

Lendo as Mudanças na série de lançamentos do GCC 6, novos recursos e correções acho muito interessante a nova opção -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)
    ^~

Estou apenas imaginando como a opção pode reconhecer esse tipo de indentação enganosa quando o tab space é "desconhecido" para gcc devido ao fato de que pode ser 4 ou 8 ou até mesmo o que nunca ...

    
por Al Bundy 01.03.2016 / 12:27

1 resposta

2

Não pode. Os desenvolvedores declaram explicitamente que ele é baseado em um conjunto de heurísticas sintonizadas para capturar o recuo mais enganoso sem muito barulho. Como com outros avisos do compilador, haverá falsos positivos e falsos negativos. Deixe o current GCC solto na maioria dos códigos com -Wall e weep.

    
por 01.03.2016 / 14:16

Tags