4

Clang 有多种诊断,其中三种主要是错误、警告和注释。

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

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++——包含一个注释,没有相关的错误或警告?

4

1 回答 1

5

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

这些严重性由诊断子系统根据各种配置选项映射到一个较小的输出级别集(Diagnostic::Level enum, {Ignored, Note, Warning, Error, Fatal})。Clang 内部支持完全细粒度的映射机制,允许您将几乎任何诊断映射到所需的输出级别。唯一无法映射的诊断是 NOTEs,它始终遵循先前发出的诊断的严重性和 ERROR,只能映射到 Fatal(例如,不可能将错误变成警告)。

所以不幸的是没有;如果不破解 Clang 本身,您将无法做到这一点。注释仅用于链接到其他诊断。我会向 LLVM 跟踪器提交一个错误;这绝对是有用的功能。

于 2013-07-09T23:08:08.570 回答