8.172 --signed_bitfields、--unsigned_bitfields

int 型のビットフィールドを符号付きにするかどうかを指定できます。

C 標準では、ビットフィールドを宣言する際に使用される型指定子が int または int として定義された typedef 名の場合、ビットフィールドが符号付きになるかどうかは実装によって異なると規定されています。

デフォルト

デフォルトは、--unsigned_bitfields です。ただし、ARM Linux 設定ファイルをコマンドラインで指定して、--translate_gcc または --translate_g++ を使用した場合、デフォルトは --signed_bitfields になります。

ARM のビットフィールドをデフォルトで符号なしの値にする AAPCS の要件は、バージョン 2.03 の標準では緩和されました。

typedef int integer;
struct
{
    integer x : 1;
} bf;
--signed_bitfields を使用してこのコードをコンパイルすると、x は符号付きのビットフィールドとして処理されます。
関連する参考文書
8.9 --arm_linux_config_file=path
8.10 --arm_linux_configure
8.93 --gnu_defaults
関連情報
『Procedure Call Standard for the ARM Architecture』
非機密扱いPDF file icon PDF 版ARM DUI0472LJ
Copyright © 2010-2015 ARM.All rights reserved.