新的编译器选项

可以在命令行上或通过应用程序源文件中嵌入的伪指令指定编译器选项。

新的命令行选项

下表总结了 XL C/C++ 的新增命令行选项。您可以在 Compiler options reference 中找到所有编译器选项的详细语法和使用信息。

选项 描述和注释
-qasm -qasm 编译器选项现在添加了新的功能。现在您不仅可以使用此编译器选项来控制如何解释程序中的内联汇编程序语句,而且还可以控制是否为 asm 语句发出代码。
-qasm_as -qasm_as 编译器选项的语法稍有更改。
-qdump_class_hierarchy 当此选项生效时,编译器将每个类对象的层次结构和虚函数表布局的表示转储到文件。
-qlist -qlist 编译器选项添加了 offsetnooffset 子选项。指定 -qlist=offset 将指示编译器显示与过程开始处的目标列表偏移量,而不是显示与代码生成开始处的目标列表偏移量。
-qmakedep -qmakedep 编译器选项添加了新的 gcc 子选项。指定 -qmakedep=gcc 将指示编译器以类似于 GNU C/C++ 编译器使用的格式生成 make 依赖性信息。
-MF 这个新的编译器选项为 -qmakedep-M 选项生成的 make 依赖性文件指定文件名。
-qppline 这个新的编译器选项允许在预处理的输出中生成 #line 伪指令。-qnoppline 编译器选项禁止生成 #line 伪指令。
-qreserved_reg 这个新的编译器选项允许您保留一个或多个寄存器名称。除非用作 堆栈指针、帧指针或在某些其它固定角色中使用,否则不能在编译期间使用保留的寄存器。
-qsourcetype 本发行版添加了 assembler-with-cpp 作为 -qsourcetype 编译器选项的新子选项。

通常,编译器通过文件的 .S 文件名后缀识别需要预处理的汇编程序源文件。编译器预处理 .S 源文件,然后将预处理器输出发送至汇编程序。

在命令行上指定 -qsourcetype=assembler-with-cpp filename 指示编译器将出现在 assembler-with-cpp 后面的所有文件名看作需要预处理的汇编程序源文件,而不考虑文件名后缀。

-qtmplinst 这个新的编译器选项管理编译器如何执行模板的隐式实例化。
-qversion 指定 -qversion 编译器选项将返回正式的编译器产品名称和版本。

新增的 pragma 伪指令

下表总结了 XL C/C++ 的新增 pragma 伪指令选项。您可以在XL C/C++ Pragmas 中找到详细语法和使用信息。

#pragma 伪指令 描述和注释
altivec_vrsave altivec_vrsave 伪指令生效时,函数的序言和结尾将包括用于维护 VRSAVE 寄存器的代码。仅当 -qaltivec 生效时此编译指示才有效,必须仅在函数中使用此编译指示且它仅影响它所在的函数。
STDC CX_LIMITED_RANGE STDC CX_LIMITED_RANGE 伪指令 指示编译器,在它控制的作用域内,将仅用值调用复数除法和绝对值,以便中间计算结果不会溢出或失去意义。

相关信息