core/utils/common_check.cpp:16:
int64_t GetTensorNum(uint64_t dimsNum, int64_t *storageDims) { if (storageDims == nullptr) { return -1; // <- 错误码 -1 } int64_t elenmentNum = 1; for (...) { elenmentNum *= storageDims[i]; } return elenmentNum; }
问题:
int64_t
-1
if (num != expectedNum)
elenmentNum
该函数是内部工具函数(未对外暴露),修改封闭在 core/utils 内,无 ABI 兼容负担。
语义清晰度问题,当前无直接错误行为(现调用方只做相等比较),但为后续维护埋雷。
签名改为 std::optional<int64_t> GetTensorNum(...),空指针时返回 std::nullopt;同时修正变量拼写。回归依赖:现有 UT 全量。
std::optional<int64_t> GetTensorNum(...)
std::nullopt
感谢您的反馈,当前@east_yang跟踪处理中。
Describe the current behavior / 问题描述
core/utils/common_check.cpp:16:
int64_t GetTensorNum(uint64_t dimsNum, int64_t *storageDims) { if (storageDims == nullptr) { return -1; // <- 错误码 -1 } int64_t elenmentNum = 1; for (...) { elenmentNum *= storageDims[i]; } return elenmentNum; }问题:
int64_t,却用-1兼任错误码,调用方无法从类型上区分"错误"与"合法值";if (num != expectedNum)之外的任何数值判断都可能混淆;elenmentNum拼写错误(应为 elementNum)。该函数是内部工具函数(未对外暴露),修改封闭在 core/utils 内,无 ABI 兼容负担。
Impact / 影响
语义清晰度问题,当前无直接错误行为(现调用方只做相等比较),但为后续维护埋雷。
Suggested fix / 修复建议
签名改为
std::optional<int64_t> GetTensorNum(...),空指针时返回std::nullopt;同时修正变量拼写。回归依赖:现有 UT 全量。Environment / 环境信息