__attribute__((pure)) 関数属性

多くの関数は、値を返す以外に効果がなく、その戻り値はパラメータとグローバル変数にのみ依存します。このような関数は、データフロー分析対象となり、削除される場合があります。

Note

この関数属性は、ARM コンパイラでサポートされている GNU コンパイラの拡張機能です。

この関数属性は、__pure キーワードと関連していますが、同等ではありません。__pure と同等の関数属性は __attribute__((const)) です。

Show/hide

int Function_Attributes_pure_0(int b) __attribute__ ((pure));
int Function_Attributes_pure_0(int b)
{
    return b++;

}
 
int foo(int b)
{
    int aLocal=0;
    aLocal += Function_Attributes_pure_0(b);
    aLocal += Function_Attributes_pure_0(b);
    return 0;
}

この場合、Function_Attributes_pure_0 の結果は使用されないため、この関数の呼び出しは削除することができます。

Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0491EJ
Non-ConfidentialID081711