| Index: base/allocator/oom.h
|
| diff --git a/base/allocator/oom.h b/base/allocator/oom.h
|
| index 68dfae76b881cfba5164d1de5d2fd5257ab28f1f..e2d197c1ecbeb89a9e4b5d84a9f3daaba98ef3f7 100644
|
| --- a/base/allocator/oom.h
|
| +++ b/base/allocator/oom.h
|
| @@ -11,16 +11,27 @@
|
| #include <windows.h>
|
| #endif
|
|
|
| +// Do not want trivial entry points just calling OOM_CRASH() to be
|
| +// commoned up by linker icf/comdat folding.
|
| +#define OOM_CRASH_PREVENT_ICF() \
|
| + volatile int oom_crash_inhibit_icf = __LINE__; \
|
| + ALLOW_UNUSED_LOCAL(oom_crash_inhibit_icf)
|
| +
|
| // OOM_CRASH() - Specialization of IMMEDIATE_CRASH which will raise a custom
|
| // exception on Windows to signal this is OOM and not a normal assert.
|
| #if defined(OS_WIN)
|
| #define OOM_CRASH() \
|
| do { \
|
| + OOM_CRASH_PREVENT_ICF(); \
|
| ::RaiseException(0xE0000008, EXCEPTION_NONCONTINUABLE, 0, nullptr); \
|
| IMMEDIATE_CRASH(); \
|
| } while (0)
|
| #else
|
| -#define OOM_CRASH() IMMEDIATE_CRASH()
|
| +#define OOM_CRASH() \
|
| + do { \
|
| + OOM_CRASH_PREVENT_ICF(); \
|
| + IMMEDIATE_CRASH(); \
|
| + } while (0)
|
| #endif
|
|
|
| #endif // BASE_ALLOCATOR_OOM_H
|
|
|