forked from OSchip/llvm-project
Added test with sizeof conditions (relies on to-be-implemented functionality of CFG, discussion: http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20120507/057370.html)
llvm-svn: 158854
This commit is contained in:
parent
dc753b625f
commit
9a34889efe
|
@ -156,6 +156,24 @@ int fallthrough_position(int n) {
|
|||
case 223: // expected-warning{{unannotated fall-through between switch labels}} expected-note{{insert '[[clang::fallthrough]];' to silence this warning}} expected-note{{insert 'break;' to avoid fall-through}}
|
||||
[[clang::fallthrough]]; // expected-warning{{fallthrough annotation does not directly precede switch label}}
|
||||
}
|
||||
|
||||
// TODO: uncomment this test after CFG gets more options to deal with
|
||||
// unreachable code:
|
||||
// http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20120507/057370.html
|
||||
#if 0
|
||||
long p = static_cast<long>(n) * n;
|
||||
switch (sizeof(p)) {
|
||||
case 9: // this test will not work on compilers with 72-bit long
|
||||
n += static_cast<int>(p >> 32);
|
||||
[[clang::fallthrough]]; // no warning here
|
||||
case 5: // it is not intended to work on compilers with 40-bit long as well
|
||||
n += static_cast<int>(p);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
||||
return n;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue