*/
_static_inline_ const char *para_strerror(int num)
{
+ unsigned idx = num & ~((1U << OSL_ERROR_BIT) | (1U << LLS_ERROR_BIT)
+ | (1U << SYSTEM_ERROR_BIT));
assert(num > 0);
if (IS_OSL_ERROR(num)) {
assert(weak_osl_strerror);
- return weak_osl_strerror(num & ~(1U << OSL_ERROR_BIT));
+ return weak_osl_strerror(idx);
}
if (IS_LLS_ERROR(num)) {
assert(weak_lls_strerror);
- return weak_lls_strerror(num & ~(1U << LLS_ERROR_BIT));
+ return weak_lls_strerror(idx);
}
if (IS_SYSTEM_ERROR(num))
- return strerror(num & ~(1U << SYSTEM_ERROR_BIT));
- return para_errlist[num];
+ return strerror(idx);
+ return para_errlist[idx];
}
/**