bpo-38249: Expand Py_UNREACHABLE() to __builtin_unreachable() in the release mode. (GH-16329)

Co-authored-by: Victor Stinner <vstinner@python.org>
This commit is contained in:
Serhiy Storchaka 2020-03-09 20:49:52 +02:00 committed by GitHub
parent 6d0ee60740
commit eebaa9bfc5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 39 additions and 15 deletions

View file

@ -574,7 +574,7 @@ calc_number_widths(NumberFieldWidths *spec, Py_ssize_t n_prefix,
spec->n_lpadding = n_padding;
break;
default:
/* Shouldn't get here, but treat it as '>' */
/* Shouldn't get here */
Py_UNREACHABLE();
}
}

View file

@ -511,8 +511,12 @@ PyCode_Optimize(PyObject *code, PyObject* consts, PyObject *names,
if (instrsize(j) > ilen) {
goto exitUnchanged;
}
assert(ilen <= INT_MAX);
/* If instrsize(j) < ilen, we'll emit EXTENDED_ARG 0 */
if (ilen > 4) {
/* Can only happen when PyCode_Optimize() is called with
malformed bytecode. */
goto exitUnchanged;
}
write_op_arg(codestr + h, opcode, j, (int)ilen);
h += ilen;
}

View file

@ -746,7 +746,7 @@ _PyTime_GetSystemClock(void)
_PyTime_t t;
if (pygettimeofday(&t, NULL, 0) < 0) {
/* should not happen, _PyTime_Init() checked the clock at startup */
Py_UNREACHABLE();
Py_FatalError("pygettimeofday() failed");
}
return t;
}
@ -776,7 +776,7 @@ pymonotonic(_PyTime_t *tp, _Py_clock_info_t *info, int raise)
return -1;
}
/* Hello, time traveler! */
Py_UNREACHABLE();
Py_FatalError("pymonotonic: integer overflow");
}
*tp = t * MS_TO_NS;
@ -918,7 +918,7 @@ _PyTime_GetMonotonicClock(void)
if (pymonotonic(&t, NULL, 0) < 0) {
/* should not happen, _PyTime_Init() checked that monotonic clock at
startup */
Py_UNREACHABLE();
Py_FatalError("pymonotonic() failed");
}
return t;
}
@ -1019,7 +1019,7 @@ _PyTime_GetPerfCounter(void)
{
_PyTime_t t;
if (_PyTime_GetPerfCounterWithInfo(&t, NULL)) {
Py_UNREACHABLE();
Py_FatalError("_PyTime_GetPerfCounterWithInfo() failed");
}
return t;
}