--std=gnu99 --fpermissive seem to do the job, dunno why older versions didn't care nor why the -w gets ignored
also k&r c is valid c, fuck whoever decided otherwise, i'm not rewriting the clone implementation of the at&t regexp mess that ships with the code