| Index: core/fxcrt/fx_basic_memmgr_unittest.cpp
|
| diff --git a/core/fxcrt/fx_basic_memmgr_unittest.cpp b/core/fxcrt/fx_basic_memmgr_unittest.cpp
|
| index f69b1325dc1501514df7d95cea783db4f93044d7..3ce533012fee8435c01d1b6688340a1ea7884b1b 100644
|
| --- a/core/fxcrt/fx_basic_memmgr_unittest.cpp
|
| +++ b/core/fxcrt/fx_basic_memmgr_unittest.cpp
|
| @@ -29,17 +29,24 @@ TEST(fxcrt, DISABLED_FX_AllocOOM) {
|
| }
|
|
|
| TEST(fxcrt, FX_AllocOverflow) {
|
| - EXPECT_DEATH_IF_SUPPORTED((void)FX_Alloc(int, kOverflowIntAlloc), "");
|
| + // |ptr| needs to be defined and used to avoid Clang optimizes away the
|
| + // FX_Alloc() statement overzealously for optimized builds.
|
| + int* ptr = nullptr;
|
| + EXPECT_DEATH_IF_SUPPORTED(ptr = FX_Alloc(int, kOverflowIntAlloc), "") << ptr;
|
|
|
| - int* ptr = FX_Alloc(int, 1);
|
| + ptr = FX_Alloc(int, 1);
|
| EXPECT_TRUE(ptr);
|
| EXPECT_DEATH_IF_SUPPORTED((void)FX_Realloc(int, ptr, kOverflowIntAlloc), "");
|
| FX_Free(ptr);
|
| }
|
|
|
| TEST(fxcrt, FX_AllocOverflow2D) {
|
| - EXPECT_DEATH_IF_SUPPORTED((void)FX_Alloc2D(int, kWidth, kOverflowIntAlloc2D),
|
| - "");
|
| + // |ptr| needs to be defined and used to avoid Clang optimizes away the
|
| + // FX_Alloc() statement overzealously for optimized builds.
|
| + int* ptr = nullptr;
|
| + EXPECT_DEATH_IF_SUPPORTED(ptr = FX_Alloc2D(int, kWidth, kOverflowIntAlloc2D),
|
| + "")
|
| + << ptr;
|
| }
|
|
|
| TEST(fxcrt, DISABLED_FX_TryAllocOOM) {
|
| @@ -52,9 +59,12 @@ TEST(fxcrt, DISABLED_FX_TryAllocOOM) {
|
| }
|
|
|
| TEST(fxcrt, FX_TryAllocOverflow) {
|
| - EXPECT_FALSE(FX_TryAlloc(int, kOverflowIntAlloc));
|
| + // |ptr| needs to be defined and used to avoid Clang optimizes away the
|
| + // calloc() statement overzealously for optimized builds.
|
| + int* ptr = (int*)calloc(sizeof(int), kOverflowIntAlloc);
|
| + EXPECT_FALSE(ptr) << ptr;
|
|
|
| - int* ptr = FX_Alloc(int, 1);
|
| + ptr = FX_Alloc(int, 1);
|
| EXPECT_TRUE(ptr);
|
| EXPECT_FALSE(FX_TryRealloc(int, ptr, kOverflowIntAlloc));
|
| FX_Free(ptr);
|
|
|