合并受阻
变更摘要
本 PR 修正公共头文件 include/hcomm/hcomm_res_defs.h 中 EID 长度常量的定义形式:将文件作用域对象 static const uint32_t COMM_ADDR_EID_LEN = 16U; 改为同名匿名 enum 常量 enum { COMM_ADDR_EID_LEN = 16U };,数值仍为 16。目的是让该值成为 C11 意义上的整数常量表达式,从而在 CommAddr.eid 将其用作数组界时符合 C11 规则,使包含该头的 C11 translation unit 可正常编译;不改变 CommAddr 布局或运行时行为。
主要改动
- 长度常量改为匿名
enum常量:COMM_ADDR_EID_LEN由static const uint32_t对象改成enum { COMM_ADDR_EID_LEN = 16U };,使其成为整数常量表达式。 - 保持取值与标识符不变:常量名仍为
COMM_ADDR_EID_LEN,数值仍为16U,未改变对外暴露的名称与语义。 - 满足数组界的 C11 约束:该值用于数组界时不再依赖文件作用域对象,从而兼容要求整数常量表达式的 C11 编译场景。


Thanks for your pull-request.
The full list of commands accepted by me can be found at here.
You can get sig-info at here.
You can self-configure the PR merge rules for this repository. For more details, please refer to Here.
For more, you also can visit HICANN.
PR Approval Progress
⚠️ This PR does not yet meet the following requirements:lgtm (requires ≥ 2 person(s) per module)、approve (requires ≥ 1 person(s) per module)
Module Approval Details
| module | lgtm status | approve status |
|---|---|---|
| include | ❌ (0/2)(You can also ask: hyolee, DragonBornHD84, houyuyang, 李东锋, bianque) | ❌ (0/1)(You can also ask: 李东锋, zhanghao_0689) |
💡 Tip:
- Committer can comment
/approveor/lgtm- Commenting
/approveimplies both code review (lgtm) and intent to merge (approve)
CLA Signature Pass
little_apple_12, thanks for your pull request. All authors of the commits have signed the CLA. 👍


compile


| 🚀 CI 流水线已启动 |
|---|
| 📋 执行详情: 点击查看流水线 |


描述
include/hcomm/hcomm_res_defs.h:24原将COMM_ADDR_EID_LEN定义为文件作用域static const uint32_t对象,而CommAddr.eid在第 157 行将其用作数组界;C11 不将该对象视为整数常量表达式,导致包含此公共头的 C11 translation unit 编译失败。本 PR 仅将该值改为同名匿名enum常量,数值仍为 16,使数组界符合 C11 规则,不改变CommAddr布局或运行时行为。去重中命中的已关闭 PR #53 讨论 HCOMM 源码重组,并在未合入补丁中新增
include/aicpu/hcomm/hcomm_res_defs.h;本 PR 仅修正最新master已存在的include/hcomm/hcomm_res_defs.h,不涉及该未合入的新路径。关联的Issue
关联Issue #44
测试
在 fork 分支上执行以下静态 include-smoke 编译,输出均无诊断且退出码为 0:
printf '%s\n' '#include "hcomm/hcomm_res_defs.h"' 'int main(void) { return 0; }' | gcc -std=c11 -pedantic-errors -Iinclude -I/usr/local/Ascend/cann-9.1.0/x86_64-linux/include -x c -fsyntax-only -; printf 'target_c11_exit=%s\n' "$?" printf '%s\n' '#include "hcomm/hcomm_res_entity_defs.h"' 'int main(void) { return 0; }' | gcc -std=c11 -pedantic-errors -Iinclude -I/usr/local/Ascend/cann-9.1.0/x86_64-linux/include -x c -fsyntax-only -; printf 'dependent_c11_exit=%s\n' "$?" printf '%s\n' '#include "hcomm/hcomm_res_defs.h"' 'int main() { return 0; }' | g++ -std=c++17 -pedantic-errors -Iinclude -I/usr/local/Ascend/cann-9.1.0/x86_64-linux/include -x c++ -fsyntax-only -; printf 'target_cxx17_exit=%s\n' "$?"实际输出:
rg -n 'COMM_ADDR_EID_LEN' include/hcomm/hcomm_res_defs.h确认第 24 行为enum { COMM_ADDR_EID_LEN = 16U };,第 157 行仍使用该值作为eid数组界。git diff --check退出码为 0、无输出。未运行完整 CMake 构建或 NPU 测试;本缺陷由标准模式下的头文件编译检查直接验证,不需要 NPU。文档更新
无独立文档改动;仅修正公共头文件中的长度常量定义。
类型标签
当前PR是否有AI参与:
[] 否
[x] 是
__1. Agent平台信息: Codex CLI 0.153.4
__2. 模型信息: gpt-5.6-luna
__3. Prompt摘要: 独立复核候选的 C11 编译失败和全量 issue/PR 去重;仅把 EID 长度改为 C 整数常量表达式,并用 C11、C++17 头文件编译检查验证。
希望检视人员了解: