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}}
|
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}}
|
[[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;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue