On 08/12/2015 09:39 AM, Marek Polacek wrote:
This patch fixes a defect in -Wshift-overflow. We should only warn
about left-shifting 1 into the sign bit when -Wshift-overflow=2. But
this doesn't apply only for 1 << 31, but also for 2 << 30, etc.
In C++14, never warn about this.
Neither existing tests nor documentation require updating, I think.
Bootstrapped/regtested on x86_64-linux, ok for trunk?
2015-08-12 Marek Polacek <pola...@redhat.com>
PR c++/55095
* c-common.c (maybe_warn_shift_overflow): Properly handle
left-shifting 1 into the sign bit.
* c-c++-common/Wshift-overflow-6.c: New test.
* c-c++-common/Wshift-overflow-7.c: New test.
* g++.dg/cpp1y/left-shift-2.C: New test.
I didn't realize C++14 fixed this bit of lameness. I'd read that it was
under consideration when I was looking at Mikael's sext_hwi patch, but
didn't follow up on the current status.
OK for the trunk.
jeff