このコードは、最適化フラグが設定されていない場合に正常に機能します。
#include <cstdio>
int main(){
float *ptr = ({float var[10] = {1,2,3,4,5,6,7,8,9,10}; var;});
float *ptr1 = ({float var[10]; for(int i_=0;i_<10;i_++)var[i_]=i_+1; var;});
float *ptr2 = ({float var[10]; var[4]=5; var;});
printf("\n value = %f %f %f",ptr[4],ptr1[4],ptr2[4]);
}
期待どおりに戻ります5 5 5
。ただし、最適化フラグが設定されている場合は、 を返します5 0 5
。
ptr1
ループに関連する問題があります。なんで?多分それはバグですか?
最新の 4.8.0、テスト済み x64、x86、および他のビルドを使用しています。すべて同じ動作。