为什么Coverity会产生警告
> "cc" clobber ignored
函数在下面提到的代码中调用htons()和ntohs()?
lSocketAddr.sin_port = htons(kUDPServerPort);
我用Google搜索并发现此警告也会出现在英特尔编译器链中。 “cc”clobber被忽略是什么意思?这是否意味着不应该将htons()和ntohs()用于安全编程?有什么解决方案可以解决警告吗?有没有其他apis htons()和ntohs()?
系统配置:
答案 0 :(得分:0)
我认为这意味着该函数被标记为破坏处理器中conditions flags的函数,但此标记被忽略。
This commit到OpenViz显示添加了“cc”clobber,它是内联asm
语句的参数,它看起来像这样:
asm("bsch %2,%0" : "=r"(bit) : "0"(0), "r"(x & -x) : "cc");
^
|
hello!
不太确定为什么会产生警告,也许Coverity试图传达有问题的函数包含这样的asm
,但它在分析中不能考虑“cc”信息?< / p>
我认为没有理由放弃基于此警告的功能,警告似乎相当“元”,不是关于代码本身,而是关于Coverity对代码的处理。
注意:我从未使用过Coverity。