我是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
。
有人能帮我理解警告吗?
答案 0 :(得分:1)
MISRA-C:2004(旧标准)中的此规则涉及操作数的评估顺序,在未指定顺序的表达式中。关于这个问题,有大量的例子和教育材料,见规则12.2。
在您的表达中,未指定评估顺序没有问题。因此,您的工具会错误地生成警告。您的静态分析器很糟糕,请向工具供应商提交错误报告。