2013-05-22 73 views
2

我不知道这是否是提问的正确位置,但无论如何我都会这样做。为所有结构成员禁用Lint信息768

我有一个Lint的问题,我目前正在从另一个项目中迁移一些代码,并且有许多当前未在新项目中使用的结构成员。而且因为这皮棉当然与抱怨:

信息768:全球结构成员“富”(线89,文件/path/header.h)没有引用

我想在给剿这些消息(因为他们打破了我们的构建),但我不想全局做到这一点,因为与迁移并行,有代码正在实现,我们希望阻止结构成员不被使用。因此,我可以选择使用全局配置文件来抑制这些成员的消息(即-esym(768,foo))。

不过,我有这样的问题:

typedef struct { 
    u16 foo; 
    u16 bar; 
} t_foobar; 

typedef struct { 
    u16 foo; 
    u16 bar; 
    u16 temp; 
} t_tempfoobar; 

foobar的:: foo和foobar的::酒吧当前未使用的,所以我想作一个皮棉例外整个t_foobar结构,但如果我用-esym (foo)我也会为t_tempfoobar :: foo创建一个我不想要的例外。我试过-esym(768,t_foobar *),但没有奏效。我也不能做内联异常,如:

// lint -e768 
typedef struct { 
    u16 foo; 
    u16 bar; 
} t_foobar; 
//lint -restore 

它不起作用。它工作的唯一方法是如果我在Lint的配置文件中执行-e768。

对于如何做到这一点,您有什么建议吗?而不必为每个成员编写例外情况?这也存在其他同名结构的成员也被排除在外的问题。

感谢所有帮助

+2

我已经解决了这个问题,该结构需要被命名,而不是匿名的,因为它可以使用通配符。 -esym(768,t_foobar *)这个工作如果结构也有名字t_foobar而不只是typedef的名字。 –

+0

不错的工作。你应该发表你以前的评论作为你自己问题的答案 - 这种方式对未来的其他人显而易见,你已经认识到了这一点,它也可以帮助其他人。 –

回答

1

参考Gimpel FAQs

一些的消息抑制了常见的错误是:

  • 您使用不起毛的意见中你的源代码,但它们没有效果。确保在它之前没有空格包括“lint”一词。

    //lint -e620   - OK 
    //-e620   - won't work 
    // lint -e620 - won't work 
    
  • 在问题的代码片段显示行之前的“空间”,它在这里似乎是一个问题。