MISRA C规则12.2

时间:2018-02-05 17:48:42

标签: c misra

我是MISRA规则概念的新手。我有一个规则12.2警告说

  

表达式的值在任何顺序下都应相同   标准允许的评估(MISRA C 2004)

以下C代码:

PtToStack

其中Entry是指向堆栈的指针,top是堆栈结构中的数组,e变量是堆栈结构的字段。 Entry具有相同类型的 ActiveAdmin.register User do # See permitted parameters documentation: # https://github.com/activeadmin/activeadmin/blob/master/docs/2-resource-customization.md#setting-up-strong-parameters # # permit_params :email, :encrypted_password, :remember_created_at, :sign_in_count, :current_sign_in_at, :avatar index do selectable_column id_column column :email column :current_sign_in_at column :sign_in_count column :created_at actions end filter :email filter :current_sign_in_at filter :sign_in_count filter :created_at show do attributes_table do row :email row :current_sign_in_at row :image end end form do |f| f.inputs do f.input :email f.input :password f.input :password_confirmation end f.actions end end

有人能帮我理解警告吗?

1 个答案:

答案 0 :(得分:1)

MISRA-C:2004(旧标准)中的此规则涉及操作数的评估顺序,在未指定顺序的表达式中。关于这个问题,有大量的例子和教育材料,见规则12.2。

在您的表达中,未指定评估顺序没有问题。因此,您的工具会错误地生成警告。您的静态分析器很糟糕,请向工具供应商提交错误报告。