https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81345
Martin Sebor <msebor at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |ASSIGNED
Version|8.0 |7.0
Keywords| |diagnostic
Last reconfirmed| |2017-07-06
Component|driver |other
Assignee|unassigned at gcc dot gnu.org |msebor at gcc dot
gnu.org
Ever confirmed|0 |1
Summary|-Wall resets default option |-Wall resets
|arguments to 1 |-Wstringop-overflow to 1
| |from the default 2
--- Comment #3 from Martin Sebor <msebor at gcc dot gnu.org> ---
Doh! Thanks for the hint! This ability is already there in LangEnabledBy:
LangEnabledBy(language, opt, posarg, negarg)
I expected the default LangEnabledBy setting to use the default value specified
by the Init() directive.
So it's a bug in the -Wstringop-overflow specification in the c.opt file. It
should be:
Wstringop-overflow=
C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_stringop_overflow)
Init(2) Warning LangEnabledBy(C ObjC C++ ObjC++, Wall, 2, 0) IntegerRange(0, 4)
With this it works as expected.