re PR c++/91024 (-Wimplicit-fallthrough is confused by likely/unlikely attributes)
PR c++/91024 * gimplify.c (collect_fallthrough_labels): Ignore GIMPLE_PREDICT statements. * g++.dg/warn/Wimplicit-fallthrough-4.C: New test. From-SVN: r272764
This commit is contained in:
parent
12213acba9
commit
95bb6e7a56
@ -1,5 +1,9 @@
|
||||
2019-06-27 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c++/91024
|
||||
* gimplify.c (collect_fallthrough_labels): Ignore GIMPLE_PREDICT
|
||||
statements.
|
||||
|
||||
PR tree-optimization/91010
|
||||
* tree-vect-stmts.c (scan_operand_equal_p): If offset1 == offset2,
|
||||
return true. Otherwise, don't call operand_equal_p if offset1 or
|
||||
|
@ -2120,6 +2120,8 @@ collect_fallthrough_labels (gimple_stmt_iterator *gsi_p,
|
||||
}
|
||||
else if (gimple_call_internal_p (gsi_stmt (*gsi_p), IFN_ASAN_MARK))
|
||||
;
|
||||
else if (gimple_code (gsi_stmt (*gsi_p)) == GIMPLE_PREDICT)
|
||||
;
|
||||
else if (!is_gimple_debug (gsi_stmt (*gsi_p)))
|
||||
prev = gsi_stmt (*gsi_p);
|
||||
gsi_next (gsi_p);
|
||||
|
@ -1,5 +1,8 @@
|
||||
2019-06-27 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c++/91024
|
||||
* g++.dg/warn/Wimplicit-fallthrough-4.C: New test.
|
||||
|
||||
PR tree-optimization/91010
|
||||
* g++.dg/vect/simd-10.cc: New test.
|
||||
|
||||
|
22
gcc/testsuite/g++.dg/warn/Wimplicit-fallthrough-4.C
Normal file
22
gcc/testsuite/g++.dg/warn/Wimplicit-fallthrough-4.C
Normal file
@ -0,0 +1,22 @@
|
||||
// PR c++/91024
|
||||
// { dg-do compile { target c++11 } }
|
||||
// { dg-options "-Wimplicit-fallthrough" }
|
||||
|
||||
int
|
||||
foo (char c)
|
||||
{
|
||||
int result = 0;
|
||||
|
||||
switch (c)
|
||||
{
|
||||
case 'O':
|
||||
case 'K':
|
||||
return result;
|
||||
[[unlikely]] case 'X': // { dg-bogus "this statement may fall through" }
|
||||
case 'x': // { dg-bogus "here" }
|
||||
return result;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return result;
|
||||
}
|
Loading…
Reference in New Issue
Block a user