Klocwork警告代码BP.DDL.SP1d是什么意思以及如何解决?

时间:2018-06-25 09:52:37

标签: c++ c klocwork

在为我的项目运行Klocwork时,我收到许多严重性级别4警告,例如:“第178行:循环索引'i'用作第177行的索引,以计算'queue_id',然后将其用作内部的索引第175行为“ for””

代码如下:

for (i = 0; i < nb_rx; i++) 
{
  queue_id = events[i].queue_id;
  event_handler_id = queues_table[queue_id].event_handler;

  handler_table[event_handler_id].receive_func(events[i], dev_id, port_id);//call event function to handle this event
}

基本上,我可以看到模式是在for循环中,如果我通过读取使用“ i”索引的数组“ events [i]”得到结果“ queue_id”,那么我将得到另一个结果通过从另一个使用先前结果“ queue_id”建立索引的数组“ queues_table [queue_id]”中读取“ event_handler_id”,那么我会得到此警告。

此警告的Klocwork代码为“ BP.DDL.SP1d”,但我找不到更详细的解释。

但是我保证这种行为(从一个数组读取,然后使用此结果从另一个数组读取)正是我想要做的。对我来说,这听起来像是一个有效的逻辑,所以我不知道为什么Klocwork一直对这样的代码发出警告。

有人知道原因是什么,如何避免收到警告?严重性级别仅为4,所以这不是关键问题,但我仍然想了解原因。

非常感谢。

0 个答案:

没有答案