函数逻辑报告 |
Source Code:lib\ubsan.c |
Create Date:2022-07-27 08:21:19 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:__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 |
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 : |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |