14.1 サポートされている GNU 拡張機能

C および C++ 言語に対する GNU 拡張機能の ARM コンパイラサポートについて説明します。

表 14-1 サポートされている GNU 拡張機能

GNU 拡張機能 起源 サポートされるモード
10.4 __alignof__ GCC 固有。 C90、C99、C++、GNU C90、GNU C99、GNU C++。
自動変数の集合イニシャライザ要素 標準 C99、標準 C++。 C99、C++、GNU C90、GNU C99、GNU C++。
代替キーワード GCC 固有。 GNU C90、GNU C99、GNU C++。
asm キーワード 標準 C++。 C++、GNU C90、GNU C++。
アセンブララベル - C90、C99、C++、GNU C90、GNU C99、GNU C++。
case の範囲 GCC 固有。 GNU C90、GNU C99、GNU C++。
共用体のキャスト GCC 固有。 GNU C90、GNU C99。
文字エスケープシーケンス GCC 固有。 GNU C90、GNU C99、GNU C++。
複合リテラル 標準 C99。 C99、GNU C90、GNU C99、GNU C++。
オペランドを省略した条件付きステートメント GCC 固有。 GNU C90、GNU C99、GNU C++。
指定済みのイニシャライザ 標準 C99。 C99、GNU C90、GNU C99、GNU C++。
識別子内のドル記号 GCC 固有。 GNU C90、GNU C99、GNU C++。
拡張左辺値 a 標準 C++。 C++、GNU C90、GNU C99、GNU C++。
10.30 関数属性 - C90、C99、C++、GNU C90、GNU C99、GNU C++。
10.160 GNU 組み込み関数 - -
インライン関数 標準 C99、標準 C++。 C99、C++、GNU C90、GNU C99、GNU C++。
値としてのラベル GCC 固有。 GNU C90、GNU C99、GNU C++。
void ポインタと関数ポインタに対するポインタ算術演算 GCC 固有。 GNU C90、GNU C99。
ステートメント式 GCC 固有。 GNU C90、GNU C99、GNU C++。
無名の組み込み構造体または共用体 GCC 固有。 GNU C90、GNU C99、GNU C++。
10.31 __attribute__((alias)) 関数属性 GCC 固有。 C90、C99、C++、GNU C90、GNU C99、GNU C++。
10.59 __attribute__((aligned)) 型属性 GCC 固有。 C90、C99、C++、GNU C90、GNU C99、GNU C++。
10.65 __attribute__((aligned)) 変数属性 GCC 固有。 C90、C99、C++、GNU C90、GNU C99、GNU C++。
10.32 __attribute__((always_inline)) 関数属性 GCC 固有。 C90、C99、C++、GNU C90、GNU C99、GNU C++。
10.33 __attribute__((const)) 関数属性 GCC 固有。 C90、C99、C++、GNU C90、GNU C99、GNU C++。
10.34 __attribute__((constructor[(priority)])) 関数属性 GCC 固有。 C90、C99、C++、GNU C90、GNU C99、GNU C++。
10.66 __attribute__((deprecated)) 変数属性 GCC 固有。 C90、C99、C++、GNU C90、GNU C99、GNU C++。
10.36 __attribute__((destructor[(priority)])) 関数属性 GCC 固有。 C90、C99、C++、GNU C90、GNU C99、GNU C++。
10.37 __attribute__((format)) 関数属性 GCC 固有。 C90、C99、C++、GNU C90、GNU C99、GNU C++。
10.38 __attribute__((format_arg(string-index))) 関数属性 GCC 固有。 C90、C99、C++、GNU C90、GNU C99、GNU C++。
10.39 __attribute__((malloc)) 関数属性 GCC 固有。 C90、C99、C++、GNU C90、GNU C99、GNU C++。
10.40 __attribute__((noinline)) 関数属性 GCC 固有。 C90、C99、C++、GNU C90、GNU C99、GNU C++。
10.41 __attribute__((no_instrument_function)) 関数属性 GCC 固有。 C90、C99、C++、GNU C90、GNU C99、GNU C++。
10.43 __attribute__((nonnull)) 関数属性 GCC 固有。 C90、C99、C++、GNU C90、GNU C99、GNU C++。
10.44 __attribute__((noreturn)) 関数属性 GCC 固有。 C90、C99、C++、GNU C90、GNU C99、GNU C++。
10.46 __attribute__((nothrow)) 関数属性 GCC 固有。 C90、C99、C++、GNU C90、GNU C99、GNU C++。
10.60 __attribute__((packed)) 型属性 GCC 固有。 GNU C90、GNU C99、GNU C++。
10.68 __attribute__((packed)) 変数属性 GCC 固有。 C90、C99、GNU C90、GNU C99、GNU C++。
10.48 __attribute__((pure)) 関数属性 GCC 固有。 C90、C99、C++、GNU C90、GNU C99、GNU C++。
10.69 __attribute__((section("name"))) 変数属性 GCC 固有。 C99、GNU C90、GNU C99、GNU C++。
10.50 __attribute__((sentinel)) 関数属性 GCC 固有。 C90、C99、C++、GNU C90、GNU C99、GNU C++。
10.61 __attribute__((transparent_union)) 型属性 GCC 固有。 GNU C90、GNU C99。
10.70 __attribute__((unused)) 変数属性 GCC 固有。 C90、C99、C++、GNU C90、GNU C99、GNU C++。
10.71 __attribute__((used)) 変数属性 GCC 固有。 C90、C99、GNU C90、GNU C99。
10.72 __attribute__((visibility("visibility_type"))) 変数属性 GCC 固有。 C90、C99、C++、GNU C90、GNU C99、GNU C++。
10.54 __attribute__((warn_unused_result)) GCC 固有。 C90、C99、C++、GNU C90、GNU C99、GNU C++。
10.55 __attribute__((weak)) 関数属性 GCC 固有。 C90、C99、C++、GNU C90、GNU C99、GNU C++。
10.73 __attribute__((weak)) 変数属性 GCC 固有。 C90、C99、C++、GNU C90、GNU C99、GNU C++。
10.56 __attribute__((weakref("target"))) 関数属性 GCC 固有。 C90、C99、C++、GNU C90、GNU C99、GNU C++。
10.74 __attribute__((weakref("target"))) 変数属性 GCC 固有。 C90、C99、C++、GNU C90、GNU C99、GNU C++。
可変個引数マクロ 標準 C99。 C90、C99、C++、GNU C90、GNU C99、GNU C++。b
長さがゼロの配列 GCC 固有。 GNU C90、GNU C99。
関連する参考文書
8.92 --gnu
関連情報
Which GNU language extensions are supported by the ARM Compiler?
a
特定の --gnu_version の値にのみ使用できます。
b
--gnu が指定されている場合は(GNU モード)、GNU 固有の構文が適用されます。
非機密扱いPDF file icon PDF 版ARM DUI0472LJ
Copyright © 2010-2015 ARM.All rights reserved.