Возможность смоделировать поведение опции -Werror с GCC 3.4?
Есть ли надежда заставить компилятор GCC 3.4 превратить все предупреждения в ошибки, как это делает опция 4.4 -Werror в GCC?
Спасибо
3 ответа
Решение
Как сказал @pmg -
gcc 3.4.6 принимает -Werror (см. нижнюю часть руководства); GCC 3.3.6 также принимает это!
Реальные кредиты должны идти в pmg, но спасибо всем также:-)
Вы можете обернуть его и вернуть ошибку, если gcc записал что-либо в stderr.
Выполните GCC, перенаправьте stderr в файл, поместите файл в stderr:
temp=$(tempfile)
trap rm "$temp" EXIT
gcc "$@" 2>"$temp"
ret=$?
cat "$temp" >&2
Вернуть статус выхода gcc, если это не 0:
if [ "$ret" != 0 ]; then
exit $ret;
}
Вернуть 1, если файл не пустой:
if [ $(stat --format=%s "$temp") != "0" ]; then
exit 1;
}
Гадкий хак, просто grep "предупреждение"
gcc files.c 2>&1 | grep "warning:" && exit 1
Замените выход 1 тем, что он должен делать при обнаружении предупреждений.