Closed
round op_host/round_tiling.h include guard 宏名不匹配,保护失效 #3453
eieieiAdd on Oct 9Closed at 25 days ago
陈思
Oct 9 Comments:
Oct 9 Comments:
您好,感谢反馈!核对 cann/ops-math 提交 9e6334a5 的 round_tiling.h 后,确认 #ifndef ROUND_TILING_DEF_H 与下一行的 #define 不一致;同文件又声明了 RoundCompileInfo,因此重复包含时无法依靠这个保护宏阻止再次展开,可能导致结构体重定义。
一个可行的修正是将 #define 统一为 ROUND_TILING_DEF_H,与现有 #ifndef 和结尾注释保持一致。这是 Host UT 头文件的保护问题,是否出现编译错误取决于实际包含链。


25 days ago Associated pull request
25 days ago Close issue
25 days ago Added label: resolved
现象
experimental/math/round/tests/ut/op_host/round_tiling.h的 include guard 宏名不匹配:#ifndef ROUND_TILING_DEF_H #define ROUND_TILING_DATA_H__TILING_DEF_H ... #endif // ROUND_TILING_DEF_H#ifndef判断的是ROUND_TILING_DEF_H,但#define定义的却是另一个符号ROUND_TILING_DATA_H__TILING_DEF_H。于是ROUND_TILING_DEF_H永远不会被定义,头文件被多次 include 时保护失效(重复展开,可能触发重复定义/重定义告警)。影响
include guard 形同虚设;该头一旦被多次包含(经不同 include 链),宏/结构体重复定义。
期望
让
#define与#ifndef使用同一符号(如二者都用ROUND_TILING_DEF_H)。