summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2021-12-18 19:42:31 +0900
committerGitHub <[email protected]>2021-12-18 19:42:31 +0900
commitd7812bd3d6b059966f693ac406034e4ceb22f7d5 (patch)
tree7a39c0bf206265426413ca7b722521c03d7b8928
parent9b65d0dc861f4a5d1605fa7fccb56f1758a2bd6f (diff)
parent26338fe640720a39303885a98e6312210f051cde (diff)
downloadmruby-d7812bd3d6b059966f693ac406034e4ceb22f7d5.tar.gz
mruby-d7812bd3d6b059966f693ac406034e4ceb22f7d5.zip
Merge pull request #5603 from dearblue/codegen_error
Print error before cleanup in `codegen_error()`
-rw-r--r--mrbgems/mruby-compiler/core/codegen.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/mrbgems/mruby-compiler/core/codegen.c b/mrbgems/mruby-compiler/core/codegen.c
index 54eb611ca..722c0b480 100644
--- a/mrbgems/mruby-compiler/core/codegen.c
+++ b/mrbgems/mruby-compiler/core/codegen.c
@@ -111,6 +111,15 @@ static void
codegen_error(codegen_scope *s, const char *message)
{
if (!s) return;
+#ifndef MRB_NO_STDIO
+ if (s->filename_sym && s->lineno) {
+ const char *filename = mrb_sym_name_len(s->mrb, s->filename_sym, NULL);
+ fprintf(stderr, "%s:%d: %s\n", filename, s->lineno, message);
+ }
+ else {
+ fprintf(stderr, "%s\n", message);
+ }
+#endif
while (s->prev) {
codegen_scope *tmp = s->prev;
if (s->irep) {
@@ -137,15 +146,6 @@ codegen_error(codegen_scope *s, const char *message)
mrb_pool_close(s->mpool);
s = tmp;
}
-#ifndef MRB_NO_STDIO
- if (s->filename_sym && s->lineno) {
- const char *filename = mrb_sym_name_len(s->mrb, s->filename_sym, NULL);
- fprintf(stderr, "%s:%d: %s\n", filename, s->lineno, message);
- }
- else {
- fprintf(stderr, "%s\n", message);
- }
-#endif
MRB_THROW(s->mrb->jmp);
}