diff options
author | Kunshan Wang <wks1986@gmail.com> | 2023-05-15 12:08:00 +0800 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2023-05-15 15:12:30 +0900 |
commit | c7067ed13d6cbe7fd8ba25418d2881f40fc4cbab (patch) | |
tree | 981a317f2e32295f75546884be8e4c028261d3c2 | |
parent | 8bd4d8867a0222a3c30a0c7ee1f69b06baa8e91a (diff) | |
download | ruby-c7067ed13d6cbe7fd8ba25418d2881f40fc4cbab.tar.gz |
Use the rb_sys_fail_str macro in signal.c
Let signal.c include "internal/error.h" explicitly to ensure that the
identifier rb_sys_fail_str in signal.c refers to the macro defined in
"internal/error.h" instead of the actual function.
That macro reads errno before evaluating its argument. Without this
change, the rb_signo2signm(sig) expression in the "trap" function in
signal.c will overwrite the errno before the actual rb_sys_fail_str
function reads the errno.
-rw-r--r-- | common.mk | 1 | ||||
-rw-r--r-- | signal.c | 1 |
2 files changed, 2 insertions, 0 deletions
@@ -14436,6 +14436,7 @@ signal.$(OBJEXT): $(hdrdir)/ruby/ruby.h signal.$(OBJEXT): $(top_srcdir)/internal/array.h signal.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h signal.$(OBJEXT): $(top_srcdir)/internal/compilers.h +signal.$(OBJEXT): $(top_srcdir)/internal/error.h signal.$(OBJEXT): $(top_srcdir)/internal/eval.h signal.$(OBJEXT): $(top_srcdir)/internal/gc.h signal.$(OBJEXT): $(top_srcdir)/internal/imemo.h @@ -36,6 +36,7 @@ #include "debug_counter.h" #include "eval_intern.h" #include "internal.h" +#include "internal/error.h" #include "internal/eval.h" #include "internal/sanitizers.h" #include "internal/signal.h" |