是否有 GCC 标志发出有关作用域内相同变量重新定义的警告?

Is there a GCC flag to emit warning about identical variable redefinition inside scope?

如所见here,以下是有效的 C 代码:

int test = 10;
if (true) {
    int test = 10;
}

我想知道在重新定义相同的情况下是否有警告标志。

有:-Wshadow=local。传递不同的值(而不是 "local")还可以更精确地控制哪些标识符可以隐藏,哪些不能隐藏。

它检查名称是否相同,这是一个足够好的近似值。

-Wshadow Warn whenever a local variable or type declaration shadows another variable, parameter, type, or class member (in C++), or whenever a built-in function is shadowed. Note that in C++, the compiler will not warn if a local variable shadows a struct/class/enum, but will warn if it shadows an explicit typedef.

来源:https://gcc.gnu.org/onlinedocs/gcc-4.6.0/gcc/Warning-Options.html