#pragma returns_new_memory (funcname[, funcname])
指定した関数の戻り値が呼び出し元のどのメモリーとも別名処理されないことを表明します。つまり、この呼び出しでは、新しいメモリー位置が返されます。この情報は、オプティマイザがポインタ値の追跡やメモリー位置の明確化をより適切に行うことを可能にするため、スケジューリング、パイプライン化、およびループの並列化が改善されます。表明が偽の場合には、プログラムの動作は未定義になります。
次の例に示すように、このプラグマは、指定した関数をプロトタイプまたは空のパラメータリストで宣言したあとでのみ許可されます。
void *malloc(unsigned); #pragma returns_new_memory(malloc)