Hexagon LLVM编译架构介绍(6)
3.4.7 诊断格式
LLVM 旨在默认生成好的诊断,特别是对于刚开始使用 LLVM 的新用户。 但是,不同的用户有不同的偏好,有时 LLVM 可能由另一个程序驱动,该程序需要诊断输出简单一致而不是用户友好。 对于这些情况,LLVM 提供了广泛的选项来控制它生成的诊断的输出格式。
参数 | 描述 |
---|---|
-fcaret-diagnostics / -fno-caret-diagnostics | 从诊断中的源代码打印源代码行和范围。控制 LLVM 在发出诊断时是否打印源行、源范围和插入符号。 默认设置已启用。 启用后,LLVM 将打印如下内容:![]() |
-fcolor-diagnostics / -fno-color-diagnostics | 控制 LLVM 是否以彩色打印诊断信息。 当检测到支持颜色的终端时,将启用默认设置。 启用后,LLVM 使用颜色突出显示诊断的特定部分。 例如:![]() ![]() |
-fdiagnostics-format=(clang|msvc|vi) | 更改诊断输出格式以更好地匹配 IDE 和命令行工具。 此选项控制诊断消息中打印的文件名、行号和列的输出格式。 默认设置是 clang 。 设置对输出格式的影响如下所示。![]() |
-fdiagnostics-show-name / -fno-diagnostics-show-name | 启用诊断名称的显示。控制 LLVM 是否打印关联的名称。 默认设置已禁用。 |
-fdiagnostics-show-option / -fno-diagnostics-show-option | 在诊断行中启用 [-Woption] 信息。控制 LLVM 在输出警告诊断时是否打印关联的警告组选项名称(第 3.5.3 节)。 默认设置是禁用的。 例如,给定以下诊断输出:![]() |
-fdiagnostics-show-category=(none|id|name) | 在诊断行中启用打印类别信息。 此选项控制 LLVM 在发出诊断时是否打印与诊断相关的类别。 默认设置为 none 。 设置对输出格式的影响如下所示。![]() |
-fdiagnostics-fixit-info / -fno-diagnostics-fixit-info | 在诊断输出中启用“FixIt”信息。 此选项控制 LLVM 是否打印有关如何修复其下特定诊断的信息(当它知道如何修复时)。 默认设置已启用。 例如,给定以下诊断输出:![]() |
-fdiagnostics-print-source-range-info / -fno-diagnostics-print-source-range-info | 打印有关源范围的机器可解析信息。 此选项控制 LLVM 是否在文件/行/列号信息之后以机器可解析的格式打印有关源范围的信息。 默认设置是禁用的。 该信息是括号括起来的范围的简单序列,其中每个范围都列出了开始和结束行/列的位置。 例如,给定以下输出:![]() |
-fdiagnostics-parseable-fixits | 以机器可解析的格式打印 Fix-Its。此选项使 LLVM 在诊断结束时以机器可解析的格式打印可用 Fix-Its。 以下示例说明了该格式:![]() |
-fdiagnostics-show-template-tree | 模板类型差异打印文本树。 对于区分大型模板类型,此选项会导致 LLVM 将模板显示为缩进文本树,每行一个参数,并将任何差异标记为内联。 这与 -fno-elide-type 兼容。![]() |
-fno-elide-type | 在模板类型打印中禁用省略。 模板类型打印的默认设置是尽可能多地省略模板参数,删除两种模板类型中相同的参数,只留下不同之处。 指定此选项会导致打印所有模板参数。 如果终端支持,突出显示仍将出现在不同的参数上。 此选项的效果如下所示。![]() |
-fmessage-length=n / -fshow-column /-fno-show-column | 在诊断中打印列号。 控制 LLVM 是否打印诊断的列号。 默认设置已启用。 启用后,LLVM 将打印如下内容:![]() |
-fshow-source-location / -fno-show-source-location | 在诊断中打印源文件/行/列信息。 控制 LLVM 是否打印诊断文件名、行号和列号。 默认设置已启用。 启用后,LLVM 将打印如下内容:![]() |