Index: build/config/compiler/compiler.gni |
diff --git a/build/config/compiler/compiler.gni b/build/config/compiler/compiler.gni |
index 2cb9637059831e9809dc97540d0b49da5b1df17e..e8051ec423489bcdf55f449b14b62db9e139b758 100644 |
--- a/build/config/compiler/compiler.gni |
+++ b/build/config/compiler/compiler.gni |
@@ -85,13 +85,18 @@ if (is_mac || is_ios) { |
using_sanitizer || enable_profiling || is_debug || current_cpu == "arm64" |
} |
-# Unwinding with frame pointers requires that frame pointers are enabled by |
-# default for most translation units, and that the architecture isn't thumb, as |
-# frame pointers are not correctly emitted for thumb. |
-if (enabled_frame_pointers && !(current_cpu == "arm" && arm_use_thumb)) { |
- can_unwind_with_frame_pointers = true |
-} else { |
+# Unwinding with frame pointers requires that they are enabled by default for |
+# most translation units, that they are emitted correctly, and that the |
+# compiler or platform provides a way to access them. |
+if (current_cpu == "arm" && arm_use_thumb) { |
+ # ARM Thumb builds do not emit frame pointers correctly. |
+ can_unwind_with_frame_pointers = false |
+} else if (is_win) { |
+ # Windows 32-bit does provide frame pointers, but the compiler does not |
+ # provide intrinsics to access them, so we don't use them. |
can_unwind_with_frame_pointers = false |
+} else { |
+ can_unwind_with_frame_pointers = enabled_frame_pointers |
} |
declare_args() { |