Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(16)

Unified Diff: base/allocator/oom.h

Issue 2683033008: Prevent icf/comdat folding for OOM_CRASH() entry points. (Closed)
Patch Set: Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698