是否只有一个音符的Clang诊断?

时间:2013-07-09 22:24:51

标签: clang diagnostics

Clang has several kinds of diagnostics,其中三种主要类型是错误,警告和注释。

Notes通常伴随某些警告和错误,例如重复定义:

error: conflicting types for 'square'
static double square(double x) {
              ^
note: previous declaration is here
static int square(int x);
           ^

我想知道的是,Clang是否有任何诊断功能 - 特别是对于Objective-C或C,但如果必须的话,我会选择C ++,只包含 一个音符,没有相关的错误或警告?

1 个答案:

答案 0 :(得分:5)

http://clang.llvm.org/docs/InternalsManual.html#the-diagnostic-kinds-td-files说:

  

这些严重性被映射到一个较小的集合(Diagnostic :: Level   枚举,{忽略,注意,警告,错误,致命})的输出级别   诊断子系统基于各种配置选项。铛   内部支持允许的完全细粒度的映射机制   您几乎可以将任何诊断映射到所需的输出级别。   唯一无法映射的诊断是NOTEs,它始终是   遵循先前发出的诊断和错误的严重性,   只能映射到Fatal(不可能出错)   例如,警告。

很遗憾没有;如果没有黑客攻击Clang本身,你就无法做到这一点。 Notes仅用于链接到其他诊断。我要向LLVM跟踪器提交一个错误;这肯定是有用的功能。