似乎已从Clang中删除了-malign-double
编译器选项。示例代码:
#include <stddef.h>
#include <stdio.h>
typedef struct X { char a; long long b; } X;
int main(void)
{
printf("%zd\n", offsetof(X, b));
return 0;
}
在32位模式(-m32
)中使用GCC编译时,可以输出8或4,具体取决于是否启用了-malign-double
。但Clang似乎不支持这个选项:
$ clang test.c -m32 -malign-double
clang: warning: argument unused during compilation: '-malign-double'
$ ./a.out
4
Clang版本:
Apple clang version 3.1 (tags/Apple/clang-318.0.58) (based on LLVM 3.1svn)
Target: x86_64-apple-darwin11.3.0
Thread model: posix
我似乎无法在Clang支持的完整编译器标志列表中找到任何官方文档,它们似乎在大多数情况下都遵循GCC的文档。
Clang中是否有等效于-malign-double
的电流?或者我现在不得不使用不同的编译器?我需要它来编译一些链接到使用该标志的仅使用二进制的第三方库的代码。