-malign-double
コンパイラ オプションが Clang から削除されたようです。コード例:
#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 ビット モード ( ) で GCC を使用してコンパイルすると、が有効か無効-m32
かに応じて、それぞれ 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 のドキュメントに従っているようです。
-malign-double
現在、Clang に相当するものはありますか? それとも、今のところ別のコンパイラを使用しなければならないのでしょうか? そのフラグを使用するバイナリのみのサードパーティ ライブラリにリンクするコードをコンパイルするために必要です。