MISRA C: 2004 Правило 5.5 (рекомендация): Не следует повторно использовать идентификатор объекта или функции со статической продолжительностью хранения - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть второе нарушение, найденное Understand SciTools, но у меня нет четких действий, чтобы исправить нарушение.

Нарушение относится к Rule 5.5 (advisory): No object or function identifier with static storage duration should be reused в следующем коде, в частности Static Identifier 'x' reused

 /* llvalue -> ICmp.t option */
CAMLprim value llvm_instr_icmp_predicate(LLVMValueRef Val) {
  CAMLparam0();
  int x = LLVMGetICmpPredicate(Val);
  if (x) {
    value Option = alloc(1, 0);
    Field(Option, 0) = Val_int(x - LLVMIntEQ);
    CAMLreturn(Option);
  }
  CAMLreturn(Val_int(0));
}

/* llvalue -> FCmp.t option */
CAMLprim value llvm_instr_fcmp_predicate(LLVMValueRef Val) {
  CAMLparam0();
  int x = LLVMGetFCmpPredicate(Val);
  if (x) {
    value Option = alloc(1, 0);
    Field(Option, 0) = Val_int(x - LLVMRealPredicateFalse);
    CAMLreturn(Option);
  }
  CAMLreturn(Val_int(0));
}

1 Ответ

0 голосов
/ 06 февраля 2019

Где-то в вашем проекте у вас есть другая переменная с именем x со статической продолжительностью хранения.Не обязательно в том же отделе перевода, где вы получаете нарушение MISRA.

Это всегда было глупое правило, я бы создал постоянное отклонение в масштабах всей организации и игнорировал бы его.(Это рекомендательное правило)

С другой стороны, x - ужасное имя переменной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...