Commit d4bd4646 by Marek Polacek Committed by Marek Polacek

re PR c++/77803 (Bogus implicit-fallthrough warning)

	PR c++/77803
	* gimplify.c (last_stmt_in_scope): Add check for FALLTHROUGH ().

	* g++.dg/warn/Wimplicit-fallthrough-1.C: New test.

From-SVN: r240861
parent 7a18d752
2016-10-07 Marek Polacek <polacek@redhat.com>
PR c++/77803
* gimplify.c (last_stmt_in_scope): Add check for FALLTHROUGH ().
2016-10-07 Richard Biener <rguenther@suse.de>
* bitmap.h: Document constraints on bitmap modification while
......
......@@ -1687,6 +1687,8 @@ last_stmt_in_scope (gimple *stmt)
stmt = gimple_seq_last_stmt (gimple_try_eval (try_stmt));
gimple *last_eval = last_stmt_in_scope (stmt);
if (gimple_stmt_may_fallthru (last_eval)
&& (last_eval == NULL
|| !gimple_call_internal_p (last_eval, IFN_FALLTHROUGH))
&& gimple_try_kind (try_stmt) == GIMPLE_TRY_FINALLY)
{
stmt = gimple_seq_last_stmt (gimple_try_cleanup (try_stmt));
......
2016-10-07 Marek Polacek <polacek@redhat.com>
PR c++/77803
* g++.dg/warn/Wimplicit-fallthrough-1.C: New test.
2016-10-07 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/77664
......
// PR c++/77803
// { dg-do compile { target c++11 } }
// { dg-options "-Wimplicit-fallthrough" }
struct A {};
int a;
void
fn1 ()
{
switch (0) {
case 0:
{
A b;
[[fallthrough]];
}
default:
a = 0;
}
}
void
fn2 ()
{
switch (0) {
case 0:
{
A b; // { dg-warning "statement may fall through" }
}
default:
a = 0;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment