Já je naopak docela chápu a fandím jim. U ethtoolu jsem si dal práci s tím, abych warningy vyčistil "do nuly" a na jeden nebo dva, kde bylo potřeba kód přiohnout, připadalo několik desítek, kde měl překladač pravdu a původní kód byl přinejmenším nečistý, v některých případech dokonce funkčně chybný. Stejný závěr se týká i nových varování, která se později objevila s novými verzemi gcc.
Defaultně tam sice -Werror zapnutý není, ale je tam " -Wall -Wextra" a jedním z testů pro každý nový commit je právě build s -Werror. Je totiž mnohem jednodušší hlídat si, že se tam žádné nové nezanášejí, než to pak po čase celé čistit. Stejně tak není reálné procházet desítky (nebo dokonce stovky či tisíce) varování a hledat, jestli v té záplavě není ukrytý nějaký skutečný problém.
Plně podepisuji, co napsal Michal Kubeček.
V céčku je desítky let platná pravda, že *) warning znamená nějakou prasárnu a ignorovat warning znamená, že toho nejspíš bude člověk po letech litovat. A -Werror se opravdu opravuje tisíckrát snadněji když to skončí hned, než když to občas vygeneruje stovky zavlečených warningů a prase vyznej se v tom (což je možná trochu subjektivní).
A kompilerů zkouším samozřejmě víc. (a kde to dává smysl, je dost zajímavé zkusit překlad i na jiné architektuře, třeba aby vypisovátko na displej na Malině šlo zkompilovat i na x64 nebo avr...)
Navíc pro koncáka není přece problém s novým kompilerem to -Werror prostě vypnout, ne? :)
*) Samozřejmě každé pravidlo má pár výjímek. S novějšími verzemi gcc bohužel mnohem víc (jak v stringop, tak i příbuzné format) než by bylo zdrávo.