代码之家  ›  专栏  ›  技术社区  ›  Gianni Spear

MISRA C:2004规则5.5(建议):不应重用具有静态存储持续时间的对象或函数标识符

  •  2
  • Gianni Spear  · 技术社区  · 7 年前

    违例者视为 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 回复  |  直到 7 年前
        1
  •  4
  •   Lundin    7 年前

    在项目中的某个地方,有另一个变量名为 x ,静态存储时间。不一定是在同一个翻译单位,你得到的米斯拉违反。

    这一直是一个愚蠢的规则,我会在整个组织范围内创建一个永久性的偏差并忽略它(这是一条咨询规则)

    另一方面, 是个可怕的变量名。

    推荐文章