diff -r 0330c5fc49ce -r d503911aa948 hotspot/test/native/utilities/test_align.cpp --- a/hotspot/test/native/utilities/test_align.cpp Wed Apr 12 13:05:59 2017 +0200 +++ b/hotspot/test/native/utilities/test_align.cpp Wed Apr 12 17:53:18 2017 +0200 @@ -45,8 +45,6 @@ std::numeric_limits::is_signed ? 's' : 'u', sizeof(T), (uint64_t)std::numeric_limits::max(), std::numeric_limits::is_signed ? 's' : 'u', sizeof(A), (uint64_t)std::numeric_limits::max()); - ASSERT_LE((uint64_t)std::numeric_limits::max(), (uint64_t)std::numeric_limits::max()) << "The test assumes that casting to intptr_t will not truncate bits"; - // Test all possible alignment values that fit in type A. for (A alignment = max_alignment(); alignment > 0; alignment >>= 1) { log("=== Alignment: " UINT64_FORMAT " ===\n", (uint64_t)alignment); @@ -62,11 +60,11 @@ T value = T(values[i]); // Check against uint64_t version - ASSERT_EQ(align_size_up(value, alignment), (intptr_t)up); + ASSERT_EQ(align_size_up((uint64_t)value, alignment), up); // Check inline function vs macro - ASSERT_EQ(align_size_up(value, alignment), (intptr_t)align_size_up_(value, alignment)); + ASSERT_EQ(align_size_up(value, alignment), align_size_up_(value, alignment)); // Sanity check - ASSERT_GE(align_size_up(value, alignment), (intptr_t)value); + ASSERT_GE(align_size_up(value, alignment), value); } // Test align down @@ -77,11 +75,11 @@ T value = T(values[i]); // Check against uint64_t version - ASSERT_EQ(align_size_down(value, alignment), (intptr_t)down); + ASSERT_EQ((uint64_t)align_size_down(value, alignment), down); // Check inline function vs macro - ASSERT_EQ(align_size_down(value, alignment), (intptr_t)align_size_down_(value, alignment)); + ASSERT_EQ(align_size_down(value, alignment), align_size_down_(value, alignment)); // Sanity check - ASSERT_LE(align_size_down(value, alignment), (intptr_t)value); + ASSERT_LE(align_size_down(value, alignment), value); } // Test is aligned @@ -103,10 +101,6 @@ TEST(Align, functions_and_macros) { // Test the alignment functions with different type combinations. - // The current implementation of the alignment functions use intptr_t - // as return and input parameter type. Therefore, we restrict the tested - // types on 32-bit platforms. -#ifdef _LP64 test_alignments(); test_alignments(); test_alignments(); @@ -121,7 +115,6 @@ test_alignments(); test_alignments(); test_alignments(); -#endif test_alignments(); test_alignments();