safe-cray-ptr、Qsafe-cray-ptr

CRAY* ポインターが他の変数とエイリアスしないようにコンパイラーに指示します。

IDE オプション

Windows: [Data (データ)] > [Assume CRAY Pointers Do Not Share Memory Locations (CRAY ポインターがメモリーの場所を共有しないと仮定する)]

Linux: なし

Mac OS X: [Data (データ)] > [Assume CRAY Pointers Do Not Share Memory Locations (CRAY ポインターがメモリーの場所を共有しないと仮定する)]

アーキテクチャー

IA-32、インテル® 64 アーキテクチャー

構文

Linux* および Mac OS* X:

-safe-cray-ptr

Windows:

/Qsafe-cray-ptr

引数

なし

デフォルト

オフ

コンパイラーは、Cray ポインターが他の変数とエイリアスすると仮定します。

説明

このオプションは、Cray ポインターが他の変数とエイリアスしない (つまり、他の変数との間で共有するメモリーを指定しない) ようコンパイラーに指示します。

代替オプション

なし

次の点に注意してください。

pointer (pb, b)
pb = getstorage()
do i = 1, n
b(i) = a(i) + 1
enddo

デフォルトでは、コンパイラーは b と a がエイリアスされていると仮定します。このような仮定を回避するには、-safe-cray-ptr (Linux* および Mac OS* X) オプションまたは /Qsafe-cray-ptr (Windows*) オプションを指定します。コンパイラーは b(i) と a(i) がお互いに独立しているものとして処理します。

しかし、変数を Cray ポインターでエイリアスする場合、このオプションを使用すると、正確な結果が得られません。次の例では、このオプションを使用しないでください。

pointer (pb, b)
pb = loc(a(2))
do i=1, n
b(i) = a(i) +1
enddo

このヘルプトピックについてのフィードバックを送信

© 1996-2011 Intel Corporation. 無断での引用、転載を禁じます。