This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [C/C++ PATCH] Fix -Wshift-overflow with sign bit


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  <polacek@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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]