On Sat, 12 May 2012, Manuel L?pez-Ib??ez wrote: > On 11 May 2012 21:23, Joseph S. Myers <jos...@codesourcery.com> wrote: > > > > There's nothing wrong with having separate autogenerated functions for > > each language if you want to split things out that way, but it would seem > > simpler just to have one function called somewhere central, whatever > > option it is (common or not) that is enabling other options. > > The problem with this approach is that it is not clear how to decide > in this single function that -Wextra needs to enable a C-only option > or not. The function would need to know that it is called from the > C-FE somehow. Having a separate function for each language easily > overcomes this issue.
I don't see why the function would need to know which front end it is called from. If it's called from another front end, enabling a C-only option should be harmless (do nothing because nothing will actually check the gcc_options field set by the C-only option / because no handler actually gets called for the option) > This is my current draft patch. It bootstraps and passes regression > tests. It seems flexible enough to implement almost all of Wall and > Wextra. Missing features are options that enabled by the combination > of two options (like Wunused-parameter) and options that are > conditional on something else (Wmain). > > Is this approach ok with you? Should I clean it up and provide a changelog? The approach is OK (even if I don't think separate functions are necessary, they are more modular and so logically better in that sense). I don't think common.opt should have LangEnabledBy listing different languages, though; that information should be in the front ends' .opt files. And, before we add such language-specific enabling of a language-independent option, I'd like a good reason not to make -Wall a common option (also having language-specific aspects) that enables -Wunused for all languages - or else -Wall should (as a separate patch) be made to enable -Wunused for all languages, to make the semantics simpler and more consistent. -- Joseph S. Myers jos...@codesourcery.com