diff options
| author | Benjamin Kramer <benny.kra@googlemail.com> | 2017-04-19 17:46:15 +0000 |
|---|---|---|
| committer | Benjamin Kramer <benny.kra@googlemail.com> | 2017-04-19 17:46:15 +0000 |
| commit | e25268de9d957a9aef7aa623fb81a71f19d224c1 (patch) | |
| tree | ca684879d82babb6e126eb6576de9b8474955b32 /llvm/unittests/Support/MathExtrasTest.cpp | |
| parent | 6cb7b8a42fbfb83233fee19894cc465bad9df842 (diff) | |
| download | bcm5719-llvm-e25268de9d957a9aef7aa623fb81a71f19d224c1.tar.gz bcm5719-llvm-e25268de9d957a9aef7aa623fb81a71f19d224c1.zip | |
[MathExtras] Fix undefined behavior (shift by bit width)
While there add some unit tests for uint64_t. Found by ubsan.
llvm-svn: 300721
Diffstat (limited to 'llvm/unittests/Support/MathExtrasTest.cpp')
| -rw-r--r-- | llvm/unittests/Support/MathExtrasTest.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/unittests/Support/MathExtrasTest.cpp b/llvm/unittests/Support/MathExtrasTest.cpp index de827217083..f46d94e9e57 100644 --- a/llvm/unittests/Support/MathExtrasTest.cpp +++ b/llvm/unittests/Support/MathExtrasTest.cpp @@ -84,6 +84,11 @@ TEST(MathExtras, onesMask) { EXPECT_EQ(0xFFFFFFFFU, maskTrailingOnes<uint32_t>(32U)); EXPECT_EQ(0xFFFFFFFFU, maskLeadingOnes<uint32_t>(32U)); + EXPECT_EQ(0xFFFFFFFFFFFFFFFFULL, maskTrailingOnes<uint64_t>(64U)); + EXPECT_EQ(0xFFFFFFFFFFFFFFFFULL, maskLeadingOnes<uint64_t>(64U)); + + EXPECT_EQ(0x0000FFFFFFFFFFFFULL, maskTrailingOnes<uint64_t>(48U)); + EXPECT_EQ(0xFFFFFFFFFFFF0000ULL, maskLeadingOnes<uint64_t>(48U)); } TEST(MathExtras, findFirstSet) { |

