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 ++,只包含 一个音符,没有相关的错误或警告?
答案 0 :(得分:5)
http://clang.llvm.org/docs/InternalsManual.html#the-diagnostic-kinds-td-files说:
这些严重性被映射到一个较小的集合(Diagnostic :: Level 枚举,{忽略,注意,警告,错误,致命})的输出级别 诊断子系统基于各种配置选项。铛 内部支持允许的完全细粒度的映射机制 您几乎可以将任何诊断映射到所需的输出级别。 唯一无法映射的诊断是NOTEs,它始终是 遵循先前发出的诊断和错误的严重性, 只能映射到Fatal(不可能出错) 例如,警告。
很遗憾没有;如果没有黑客攻击Clang本身,你就无法做到这一点。 Notes仅用于链接到其他诊断。我要向LLVM跟踪器提交一个错误;这肯定是有用的功能。