Work-around stack overflow issues.
Change-Id: I06693a53469f1f2cccc956bff5d53f04aed5f62d
diff --git a/runtime/thread.h b/runtime/thread.h
index 2ebc107..94a8bd8 100644
--- a/runtime/thread.h
+++ b/runtime/thread.h
@@ -95,7 +95,13 @@
class PACKED(4) Thread {
public:
// Space to throw a StackOverflowError in.
- static const size_t kStackOverflowReservedBytes = 16 * KB;
+#if !defined(NDEBUG) && defined(__clang__)
+ // TODO: debug clang builds have large switch based interpreter frames that require more stack
+ // space to handle stack overflow exceptions.
+ static constexpr size_t kStackOverflowReservedBytes = 18 * KB;
+#else
+ static constexpr size_t kStackOverflowReservedBytes = 16 * KB;
+#endif
// Creates a new native thread corresponding to the given managed peer.
// Used to implement Thread.start.