> >and, for diagnostics with line number information, doing the lookup > >to see what was in effect at that line. But the complications are > >worse than the benefits. > > Can you explain the complications you see. This seems like the way > to go to me, because it guarantees that the effect is precisely what > the programmer has asked for.
For example, if you have two warnings in one statement, you can't control one but not the other if they use the same -W option. A minor point, but if we used line numbers we'd be really close to "this should work" that people would claim it's a bug when it doesn't. Plus, we'd need to keep track of a linked list of flag state structures. Some folks made convincing arguments that it wouldn't always work the way the user wanted, too. We don't always have a line number, for example. Which warning state takes effect? When we have a "first used here" type diagnostic, which warning state is used? But I'm willing to implement something if people think it's the best thing to do.