首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >抑制PC-lint讯息9007,MISRA

抑制PC-lint讯息9007,MISRA
EN

Stack Exchange QA用户
提问于 2014-08-21 12:00:36
回答 2查看 652关注 0票数 0

根据MISRA规则13.5,逻辑操作符的右手操作数不应包含持久的副作用。我们的C代码是用PC,message 9007 (http://gimpel-online.com/MsgRef.html#9007)检查的.

我们有表格的代码

if((GET_SIGNAL1() < CONST_1) || (GET_SIGNAL2() == CONST_2) ) { dostuff(); }

GET_x是宏,嗯,通过一些错误处理获得信号x,后者会产生预期的副作用。给出了对MISRA 13.5的规则偏差,现在的问题是如何抑制相应的消息。

到目前为止的努力:由于这是自动生成的代码,我不能直接放入lint注释,通过生成器将注释放在其中是很难追踪的。

-e{(9007)}在宏定义中可以工作,但我们也有类似于foo = GET_SIGNAL1();的代码,这将导致函数范围内的失活。

考虑到-ecall,但它只是检查调用本身,而不是宏的上下文(正如我所希望的)。

EN

回答 2

Stack Exchange QA用户

发布于 2014-08-21 12:51:32

不确定这是否能解决所有问题,但如果您试图将SonarQube http://sonarqube.15.x6.nabble.com/包含在您的lint流程/报告中,则会对一些人有所帮助。您应该能够定制更多的结果。我个人没有使用这个,但它似乎是你想要去的地方。

票数 1
EN

Stack Exchange QA用户

发布于 2014-09-03 05:58:17

我们打算通过两次Lint运行来解决上述问题:

  • 第一次运行生产代码和全局停用消息9007
  • 第二次运行带有存根宏,没有预期的副作用,但只激活了消息9007。
票数 0
EN
页面原文内容由Stack Exchange QA提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://sqa.stackexchange.com/questions/9513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档