diff options
author | John McCall <rjmccall@apple.com> | 2010-01-06 22:07:33 +0000 |
---|---|---|
committer | John McCall <rjmccall@apple.com> | 2010-01-06 22:07:33 +0000 |
commit | 2ce81adbb3457d70ce2713ba9e59dd2bf08fb48c (patch) | |
tree | 5524b42d24712c16e4121a023bcbfaad623ccc4d /clang/test/Sema/conversion.c | |
parent | dfdda291e0da47ee002564c9d78c3fc8e0c15dc0 (diff) | |
download | bcm5719-llvm-2ce81adbb3457d70ce2713ba9e59dd2bf08fb48c.tar.gz bcm5719-llvm-2ce81adbb3457d70ce2713ba9e59dd2bf08fb48c.zip |
Derive tighter ranges for & and >> in the conversion-checking code.
llvm-svn: 92862
Diffstat (limited to 'clang/test/Sema/conversion.c')
-rw-r--r-- | clang/test/Sema/conversion.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/clang/test/Sema/conversion.c b/clang/test/Sema/conversion.c index 44b1224b52a..298bf756421 100644 --- a/clang/test/Sema/conversion.c +++ b/clang/test/Sema/conversion.c @@ -261,3 +261,13 @@ void test18() { x = (U.a ? 0 : 1); x = (U.b ? 0 : 1); } + +// None of these should warn. +unsigned char test19(unsigned long u64) { + unsigned char x1 = u64 & 0xff; + unsigned char x2 = u64 >> 56; + + unsigned char mask = 0xee; + unsigned char x3 = u64 & mask; + return x1 + x2 + x3; +} |