PC-lint 如何处理不匹配的 +/-esym(960, 17.4) 计数?

问题描述

举个小例子

uint8_t *dummy;
uint8_t *blub;
/*lint +esym(960,17.4) */
/*lint -esym(960,17.4) */
int
main()
{
    uint8_t x = blub[0];
    return dummy[6];
}

我不明白 PC-lint(9.0 版)的行为。正负 lint 命令的计数会影响行为。假设我们始终应用与上述相同的规则:

  • 一个负面因素:-> lint 警告被抑制(如预期)。
  • 一个正面,一个负面:-> lint 警告没有被抑制(正如预期的那样,如果是对称的)
  • 一个正面,两个负面:-> lint 警告被抑制(如预期)
  • 两个否定,一个肯定:-> lint 警告未抑制(由于不对称,因此未假设)

我不能将其纳入规则。这不是(总是)最后一个应用的 lint 命令,并且也没有总结正面和负面的“投票”来决定。什么时候在这里抑制警告,什么时候不抑制,背后的规则是什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)