为什么 coverity 会为此发出警告?
Why does coverity flag a warning for this?
我不确定为什么静态代码分析工具 Coverity 标记:
CID 40172 (#1 of 1): Parse warning (PW.INCOMPATIBLE_PARAM)
1. incompatible_param: argument of type "volatile mpls_RuntimeInfo_t *" is incompatible with parameter of type "void *"
对于这一行:
memset(&SW_RuntimeInfo[idx],0,sizeof(mpls_RuntimeInfo_t));
当 SW_RuntimeInfo
在全局范围内声明为 volatile static mpls_RuntimeInfo_t SW_RuntimeInfo[LABEL_T_CNT] = { 0 };
时。
为什么它会升旗?我该如何解决?
它发出警告是因为您将易失性指针传递给非易失性参数。如果您真的只想让警告消失,只需将您的参数转换为 void *
。但也许您应该重新考虑您的变量是否应该是可变的,或者以不同的方式初始化它。
我不确定为什么静态代码分析工具 Coverity 标记:
CID 40172 (#1 of 1): Parse warning (PW.INCOMPATIBLE_PARAM)
1. incompatible_param: argument of type "volatile mpls_RuntimeInfo_t *" is incompatible with parameter of type "void *"
对于这一行:
memset(&SW_RuntimeInfo[idx],0,sizeof(mpls_RuntimeInfo_t));
当 SW_RuntimeInfo
在全局范围内声明为 volatile static mpls_RuntimeInfo_t SW_RuntimeInfo[LABEL_T_CNT] = { 0 };
时。
为什么它会升旗?我该如何解决?
它发出警告是因为您将易失性指针传递给非易失性参数。如果您真的只想让警告消失,只需将您的参数转换为 void *
。但也许您应该重新考虑您的变量是否应该是可变的,或者以不同的方式初始化它。