Я обычно добавляю -Wno-sign-compare
и -Wno-unused-parameter
для удаления шума.
Подразумеваемый -Wuninitialized
(с опцией -O2
) был очень полезным для меня, но первоначальное добавление его в базу кода может быть немного утомительным. Один из способов справиться с этим - добавить два макроса (которые выглядят немного странно: знак равенства является преднамеренным):
#define ELIMINATE_GCC_WARNING = 0 // used to remove nuisance warnings
#define UNCHECKED_GCC_WARNING = 0 // not yet verified
Тогда вы можете быстро устранить предупреждения gcc и получить чистую компиляцию, используя, например, ::
int foo UNCHECKED_GCC_WARNING;
Затем в качестве необязательного шага вернитесь и проверьте эти дополнения и замените их один за другим на ELIMINATE_GCC_WARNING. Это может быть медленным. Но я был бы удивлен, если бы вы не нашли существующих ошибок.