Hexagon LLVM编译架构介绍(5)

240 篇文章 11 订阅

Hexagon LLVM编译架构介绍(5)

3.4.5 警告和错误信息

参数描述
-ferror-limit=n在产生 n 个错误后停止发出诊断。 默认设置为 20。可以使用选项 -ferror-limit=0 禁用错误限制。
-ftemplate-backtrace-limit=n对于单个警告或错误,仅在模板实例化回溯中发出最多 n 个模板实例化注释。 默认设置为 10。可以使用选项 -ftemplate-backtrace-limit=0 禁用限制。
-ferror-warn filename将指定的编译器警告集转换为错误。 指定的文本文件包含警告名称列表,每个警告名称在文件中用空格分隔。警告名称基于相应编译器警告消息选项的开关名称。 例如,要转换选项-Wunused-variable 生成的警告,请使用警告名称unused-variable。 可以多次指定此选项。
注意此选项(及其相关文件)可以集成到构建系统中,并用于迭代解决项目生成的警告消息。
参数描述
-fsyntax-only仅检查语法错误。
-pedantic生成 ISO C 和 ISO C++ 标准要求的所有警告。
-pedantic-errors等效于 -pedantic,但生成错误而不是警告。
-Qunused-arguments不要为未使用的驱动程序参数生成警告。
-w禁止所有警告。
-Wfoo / -Wno-foo将现有的编译器选项 -Wfoo 重写为 -Wno-foo 指定选项的相反设置。
-Wall启用所有 -W 选项。
-Warray-bounds如果数组下标超出范围,则生成警告。
-Wcast-align如果指针转换增加了目标所需的对齐,则生成警告。
-Wchar-subscripts如果数组下标为 char 类型,则生成警告。
-Wcomment如果注释中出现注释符号,则生成警告。
-Wconversion如果隐式转换可能会改变值,则生成警告。
-Wdeclaration-after-statement当声明出现在语句之后的块中时生成警告。
-Wno-deprecated-declarations不要为分配了不推荐使用的属性的函数、变量或类型生成警告。
-Wempty-body如果 if、else 或 do while 语句包含空主体,则生成警告。
-Wendif-labels如果#else 或#endif 指令后跟文本,则生成警告。
-Werror将所有警告转换为错误。
-Werror=foo将指定的警告转换为错误。
-Wno-error=foo保留指定的警告作为警告,即使使用了 -Werror。
-Wfoo启用警告选项foo。
-Wno-foo禁用警告选项foo。
-Werror-implicit-function-declaration / -Weverything启用所有警告。
-Wextra启用选定的警告选项,并为选定的事件生成警告。
-Wfloat-equal如果比较两个浮点值是否相等,则生成警告。
-Wformat在使用格式字符串调用 printf、scanf 和其他函数时,请确保参数与指定的格式字符串兼容。-Wformat=2 此选项等效于指定以下选项:“-Wformat -Wformat-nonliteral -Wformat-security -Wformat-y2k”。
-Wno-format-extra-args不要为将额外参数传递给 printf 或 scanf 生成警告。
-Wformat-nonliteral如果格式字符串不是字符串文字,则生成警告,除非格式参数通过 va_list 传递。
-Wformat-security对可能导致安全风险的格式函数调用生成警告。
-Wignored-qualifiers如果返回类型具有限定符(例如,const),则生成警告。
-Wimplicit等效于 -Wimplicit-int 和 -Wimplicit-function-declaration。
-Wimplicit-function-declaration如果函数在声明之前使用,则生成警告或错误。
-Wimplicit-int如果声明未指定类型,则生成警告。
-Wno-invalid-offsetof如果宏 offsetof 传递了非 POD 类型,则不生成警告。
-Wlong-long如果使用 typelong long 则生成警告。
-Wmain如果函数 main() 有任何可疑属性,则生成警告。
-Wmissing-braces如果聚合或联合初始值设定项未正确括起来,则生成警告。
-Wmissing-declarations如果在没有首先声明的情况下定义了全局函数,则生成警告。
-Wmissing-noreturn如果函数不包含 return 语句,则生成警告。
-Wmissing-prototypes如果在没有原型的情况下定义全局函数,则生成警告。
-Wno-multichar如果使用多字符常量,则不生成警告。
-Wnonnull如果将空指针传递给指定为需要非空值(具有非空属性)的参数,则生成警告。
-Wpacked如果使用packed 属性指定结构后结构的内存布局不受影响,则生成警告。
-Wpadded如果结构的内存布局包含填充,则生成警告。
-Wparentheses如果在某些情况下省略括号,则会生成警告。
-Wpointer-arith如果任何代码取决于 void 的大小或函数类型,则生成警告。
-Wreturn-type如果函数返回默认为 int 的类型或与定义的返回类型不兼容的值,则生成警告。
-Wshadow如果局部变量影响另一个局部变量、全局变量或参数,则生成警告; 或者如果内置函数被遮蔽。
-Wsign-compare如果由于有符号操作数转换为无符号操作数而导致结果不准确,则在有符号/无符号比较中生成警告。
-Wswitch / -Wswitch-enum如果 switch 语句使用枚举类型作为索引,并且没有为每个可能的枚举值指定 case,或者指定 case 的值超出枚举范围,则生成警告。
-Wsystem-headers为系统头文件中声明的构造生成警告。
-Wtrigraphs如果三字符在注释中形成转义的换行符,则生成警告。
-Wundef如果未定义的非宏标识符出现在 #if 指令中,则生成警告。
-Wuninitialized如果引用未初始化的自动变量,则生成警告。
-Wunknown-pragmas如果编译器无法识别 #pragma 指令,则生成警告。
-Wunreachable-code如果代码永远不会被执行,则生成警告。
-Wunused指定所有 -Wunused 选项。
-Wunused-function如果声明了静态函数而未定义,则生成警告; 或者如果未使用非内联静态函数。
-Wunused-label如果标签被声明而不被使用,则生成警告。
-Wunused-parameter如果函数参数未在其函数中使用,则生成警告。
-Wunused-value如果随后未使用语句的值,则生成警告。
-Wunused-variable如果在其函数中未使用局部或非常量静态变量,则生成警告。
-Wwrite-strings对于 C,将字符串常量指定为 const char[length] 类型,以确保在将字符串地址复制到非常量 char * 指针时生成警告。 对于 C++,如果将字符串常量转换为 char *,则生成警告。

3.4.6 调试

参数描述
-dumpmachine显示目标机器名称。
-dumpversion显示编译器版本。
-feliminate-unused-debug-symbols仅为使用的符号生成调试信息。 (调试信息以 STABS 格式生成。)
-time / -ftime-report显示编译的每个阶段所用的时间。
-g[level]生成源级调试信息。
-print-file-name=library显示指定文件的完整库路径。
-print-libgcc-file-name显示文件 libgcc.a 的库路径。
-print-multi-directory显示当前编译中其他编译器选项指定的多库的目录名称。
-print-multi-lib显示与指定当前编译中的库的编译器选项配对的多库的目录名称。
-print-multi-os-directory显示附加到 multilib 搜索路径的相对路径。
-print-prog-name=program显示指定程序的绝对路径。
-print-search-dirs显示用于在编译期间定位库和程序的搜索路径
-save-temps保存编译期间生成的通常临时的中间文件。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值