函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:lib\ubsan.c Create Date:2022-07-27 08:21:19
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:__ubsan_handle_shift_out_of_bounds

函数原型:void __ubsan_handle_shift_out_of_bounds(struct shift_out_of_bounds_data *data, void *lhs, void *rhs)

返回类型:void

参数:

类型参数名称
struct shift_out_of_bounds_data *data
void *lhs
void *rhs
358  rhs_type等于rhs_type
359  lhs_type等于lhs_type
362  ua_flags等于user_access_save()
364  如果suppress_report( & location)则转到:out
367  ubsan_prologue( & location)
369  val_to_string(rhs_str, rhs_str的长度, rhs_type, rhs)
370  val_to_string(lhs_str, lhs_str的长度, lhs_type, lhs)
372  如果val_is_negative(rhs_type, rhs)则打印错误信息("shift exponent %s is negative\n", rhs_str)
375  否则如果get_unsigned_val(rhs_type, rhs)大于等于type_bit_width(lhs_type)则打印错误信息("shift exponent %s is too large for %u-bit type %s\n", rhs_str, type_bit_width(lhs_type), type_name)
381  否则如果val_is_negative(lhs_type, lhs)则打印错误信息("left shift of negative value %s\n", lhs_str)
384  否则打印错误信息("left shift of %s by %s places cannot be represented in type %s\n", lhs_str, rhs_str, type_name)
390  ubsan_epilogue()
391  out :
392  user_access_restore(ua_flags)