aboutsummaryrefslogtreecommitdiffstats
path: root/error.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-01-22 08:33:55 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-01-22 08:33:55 +0000
commit4c3697bd51c2ba45b84dd8046c32b1bde26fdcb0 (patch)
treea471f6b0e76c590f04579e62d1834c915b9eb322 /error.c
parent332c24dbe9cbf9cfbe20b39027268dfc53a29c0a (diff)
downloadruby-4c3697bd51c2ba45b84dd8046c32b1bde26fdcb0.tar.gz
RUBY_ASSERT
* error.c (rb_assert_failure): assertion with stack dump. * ruby_assert.h (RUBY_ASSERT): new header for the assertion. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53615 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'error.c')
-rw-r--r--error.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/error.c b/error.c
index a86485d558..f88c19a328 100644
--- a/error.c
+++ b/error.c
@@ -11,6 +11,7 @@
#include "internal.h"
#include "ruby/st.h"
+#include "ruby_assert.h"
#include "vm_core.h"
#include <stdio.h>
@@ -499,6 +500,18 @@ rb_compile_bug_str(VALUE file, int line, const char *fmt, ...)
abort();
}
+void
+rb_assert_failure(const char *file, int line, const char *name, const char *expr)
+{
+ FILE *out = stderr;
+ fprintf(out, "Assertion Failed: %s:%d:", file, line);
+ if (name) fprintf(out, "%s:", name);
+ fprintf(out, "%s\n%s\n\n", expr, ruby_description);
+ rb_vm_bugreport(NULL);
+ bug_report_end(out);
+ die();
+}
+
static const char builtin_types[][10] = {
"", /* 0x00, */
"Object",