C ユーザーズガイド

#pragma returns_new_memory(<関数>[,<関数>])

指定した関数の戻り値が呼び出し元のどのメモリーとも別名処理されないことを表明します。つまり、この呼び出しでは、新しいメモリー位置が返されます。この表明により、オプティマイザはポインタ値を追跡して、メモリー位置を明確にし、ループのスケジューリングやパイプライン処理、並列化処理を改善することができます。表明が偽の場合には、プログラムの動作は未定義になります。

次の例に示すように、このプラグマは、指定した関数のプロトタイプを宣言した後でのみ使用できます。


void *malloc(unsigned);
#pragma returns_new_memory(malloc);