зеркало из https://github.com/github/ruby.git
Suppress "clobbered" warnings by gcc 9.2.0
This commit is contained in:
Родитель
710bc00379
Коммит
04333da7be
10
eval.c
10
eval.c
|
@ -189,6 +189,7 @@ rb_ec_cleanup(rb_execution_context_t *ec, volatile int ex)
|
||||||
volatile VALUE errs[2] = { Qundef, Qundef };
|
volatile VALUE errs[2] = { Qundef, Qundef };
|
||||||
int nerr;
|
int nerr;
|
||||||
rb_thread_t *th = rb_ec_thread_ptr(ec);
|
rb_thread_t *th = rb_ec_thread_ptr(ec);
|
||||||
|
rb_thread_t *const volatile th0 = th;
|
||||||
volatile int sysex = EXIT_SUCCESS;
|
volatile int sysex = EXIT_SUCCESS;
|
||||||
volatile int step = 0;
|
volatile int step = 0;
|
||||||
|
|
||||||
|
@ -196,9 +197,11 @@ rb_ec_cleanup(rb_execution_context_t *ec, volatile int ex)
|
||||||
rb_threadptr_check_signal(th);
|
rb_threadptr_check_signal(th);
|
||||||
EC_PUSH_TAG(ec);
|
EC_PUSH_TAG(ec);
|
||||||
if ((state = EC_EXEC_TAG()) == TAG_NONE) {
|
if ((state = EC_EXEC_TAG()) == TAG_NONE) {
|
||||||
|
th = th0;
|
||||||
SAVE_ROOT_JMPBUF(th, { RUBY_VM_CHECK_INTS(ec); });
|
SAVE_ROOT_JMPBUF(th, { RUBY_VM_CHECK_INTS(ec); });
|
||||||
|
|
||||||
step_0: step++;
|
step_0: step++;
|
||||||
|
th = th0;
|
||||||
errs[1] = ec->errinfo;
|
errs[1] = ec->errinfo;
|
||||||
if (THROW_DATA_P(ec->errinfo)) ec->errinfo = Qnil;
|
if (THROW_DATA_P(ec->errinfo)) ec->errinfo = Qnil;
|
||||||
rb_set_safe_level_force(0);
|
rb_set_safe_level_force(0);
|
||||||
|
@ -207,6 +210,7 @@ rb_ec_cleanup(rb_execution_context_t *ec, volatile int ex)
|
||||||
SAVE_ROOT_JMPBUF(th, rb_ec_teardown(ec));
|
SAVE_ROOT_JMPBUF(th, rb_ec_teardown(ec));
|
||||||
|
|
||||||
step_1: step++;
|
step_1: step++;
|
||||||
|
th = th0;
|
||||||
/* protect from Thread#raise */
|
/* protect from Thread#raise */
|
||||||
th->status = THREAD_KILLED;
|
th->status = THREAD_KILLED;
|
||||||
|
|
||||||
|
@ -220,6 +224,7 @@ rb_ec_cleanup(rb_execution_context_t *ec, volatile int ex)
|
||||||
}
|
}
|
||||||
if (ex == 0) ex = state;
|
if (ex == 0) ex = state;
|
||||||
}
|
}
|
||||||
|
th = th0;
|
||||||
ec->errinfo = errs[1];
|
ec->errinfo = errs[1];
|
||||||
sysex = error_handle(ec, ex);
|
sysex = error_handle(ec, ex);
|
||||||
|
|
||||||
|
@ -548,10 +553,10 @@ static void
|
||||||
setup_exception(rb_execution_context_t *ec, int tag, volatile VALUE mesg, VALUE cause)
|
setup_exception(rb_execution_context_t *ec, int tag, volatile VALUE mesg, VALUE cause)
|
||||||
{
|
{
|
||||||
VALUE e;
|
VALUE e;
|
||||||
const char *file = 0;
|
|
||||||
int line;
|
int line;
|
||||||
|
const char *file = rb_source_location_cstr(&line);
|
||||||
|
const char *const volatile file0 = file;
|
||||||
|
|
||||||
file = rb_source_location_cstr(&line);
|
|
||||||
if ((file && !NIL_P(mesg)) || (cause != Qundef)) {
|
if ((file && !NIL_P(mesg)) || (cause != Qundef)) {
|
||||||
volatile int state = 0;
|
volatile int state = 0;
|
||||||
|
|
||||||
|
@ -574,6 +579,7 @@ setup_exception(rb_execution_context_t *ec, int tag, volatile VALUE mesg, VALUE
|
||||||
rb_ec_reset_raised(ec);
|
rb_ec_reset_raised(ec);
|
||||||
}
|
}
|
||||||
EC_POP_TAG();
|
EC_POP_TAG();
|
||||||
|
file = file0;
|
||||||
if (state) goto fatal;
|
if (state) goto fatal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче