summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Ian Rogers <irogers@google.com> 2014-03-12 16:23:09 -0700
committer Ian Rogers <irogers@google.com> 2014-03-12 16:23:09 -0700
commit463cb4d276587245b019c0334c8fcc75fe1d0c2a (patch)
tree5ff8000c1dd39e67c624d2c5cfe5190db1c2b4c7
parente78a4234cd78210f738d0c8ff1452f4955b31a87 (diff)
Work-around stack overflow issues.
Change-Id: I06693a53469f1f2cccc956bff5d53f04aed5f62d
-rw-r--r--runtime/thread.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/runtime/thread.h b/runtime/thread.h
index 2ebc107942..94a8bd8ec5 100644
--- a/runtime/thread.h
+++ b/runtime/thread.h
@@ -95,7 +95,13 @@ enum ThreadFlag {
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.