英特尔编译器似乎逐字接受 -fno-strict-aliasing 标志,但我没有在任何地方看到该行为记录,并且该标志可能会被忽略。 -no-ansi-alias 等标志看起来相关,但我想确保我指定了完全正确的行为。
ICC 接受大多数 gcc 开关并用它们做正确的事情。如果您想使用 ICC 专用开关,那么我认为这可能是一个:
-[no-]ansi-alias
enable/disable(DEFAULT) use of ANSI aliasing rules optimizations;
user asserts that the program adheres to these rules
当这些回复发布时,英特尔编译器实际上默认为 -fno-ansi-alias,但此后它已经发生了变化(至少对于 Linux 而言)。