diff options
| author | 2014-03-12 16:23:09 -0700 | |
|---|---|---|
| committer | 2014-03-12 16:23:09 -0700 | |
| commit | 463cb4d276587245b019c0334c8fcc75fe1d0c2a (patch) | |
| tree | 5ff8000c1dd39e67c624d2c5cfe5190db1c2b4c7 | |
| parent | e78a4234cd78210f738d0c8ff1452f4955b31a87 (diff) | |
Work-around stack overflow issues.
Change-Id: I06693a53469f1f2cccc956bff5d53f04aed5f62d
| -rw-r--r-- | runtime/thread.h | 8 |
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. |