On Mon, 27 Apr 2015, Marek Polacek wrote:

> trigger by default.  One change is that we reject programs that use shift with
> undefined behavior in a context where a constant expression is required, thus
> e.g. enum E { A = -1 << 0 };
> But I hope that's reasonable.

That seems appropriate (for C99 and above).

But if someone explicitly uses -Wshift-negative-value, I'd expect that to 
produce the warnings (as opposed to the rejections where a constant 
expression is required) even in C90 mode.  That is, for the warnings, I 
think flag_isoc99 should maybe affect the default (whether -Wextra enables 
the warning, or whatever such approach gets taken), but not whether 
-Wshift-negative-value, given that the option has been enabled, produces 
warnings.

-- 
Joseph S. Myers
jos...@codesourcery.com

Reply via email to