diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 2010-12-14 05:19:51 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2010-12-14 05:19:51 +0000 |
commit | 646abff51d38292367bce009d01087c404c4759b (patch) | |
tree | ed56a19f49ccc3bcdb64886c9187a3c9fa886ad7 | |
parent | cac7efc966071ab8b1dc2faef70a698c45dfc895 (diff) | |
download | gcc-646abff51d38292367bce009d01087c404c4759b.zip gcc-646abff51d38292367bce009d01087c404c4759b.tar.gz gcc-646abff51d38292367bce009d01087c404c4759b.tar.bz2 |
Better error message if malloc gets a SIGSEGV.
From-SVN: r167785
-rw-r--r-- | libgo/runtime/go-signal.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libgo/runtime/go-signal.c b/libgo/runtime/go-signal.c index 8f44970..3838ab9 100644 --- a/libgo/runtime/go-signal.c +++ b/libgo/runtime/go-signal.c @@ -133,6 +133,12 @@ sighandler (int sig) { sigset_t clear; + if (__sync_bool_compare_and_swap (&m->mallocing, 1, 1)) + { + fprintf (stderr, "caught signal while mallocing: %s\n", msg); + __go_assert (0); + } + /* The signal handler blocked signals; unblock them. */ i = sigfillset (&clear); __go_assert (i == 0); |