From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 40861 invoked by alias); 15 Oct 2015 20:25:08 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 40832 invoked by uid 48); 15 Oct 2015 20:25:04 -0000 From: "nacitar at ubercpp dot com" To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/67980] New: left shift count is negative [-Wshift-count-negative] generated for unreachable code Date: Thu, 15 Oct 2015 20:25:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c++ X-Bugzilla-Version: 5.2.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: nacitar at ubercpp dot com X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter target_milestone attachments.created Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2015-10/txt/msg01208.txt.bz2 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67980 Bug ID: 67980 Summary: left shift count is negative [-Wshift-count-negative] generated for unreachable code Product: gcc Version: 5.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: nacitar at ubercpp dot com Target Milestone: --- Created attachment 36519 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36519&action=edit test driver With -Wall, unreachable code in a constexpr function generates a warning if written using c++14's expanded constexpr and using actual if statements, however does not in the case of a ternary-styled c++11 constexpr function. This can be worked around using template specializations, but certainly this error shouldn't happen given that these values are all known at compilation time and it's impossible for that count to ever actually be negative. This is a simplification of the problem from a larger issue.