我们在 PowerPC 平台上使用 IBM XL C/C++ 为源文件生成错误的代码。-O3
它的表面是一个挂起,看起来一个特定的循环没有被打破。
该问题仅在 XL C/C++ 下出现。我们的测试制度表明源文件没有未定义的行为、内存错误和其他勘误。我们也不会从编译器收到源文件的严格/不严格警告。
我们想编译源文件-O2
而不是-O3
. 我们想在源文件中添加工具,如编译指示,以便编译器可以适当地保护它。该仪器允许其他人连接其他构建系统,如 Cmake 和 Autotools,并且事情将为他们“正常工作”。(必要的信息在源代码中而不是我们的 makefile 中可用)。
编译器的 IBM 手册位于IBM XL C/C++ for AIX, V13.1,但该死的,如果我能找到该选项。
IBM XL C/C++ 相当于#pragma GCC optimize
什么?我们如何检测源代码以告诉 XL C/C++ 使用-O2
而不是-O3
?