I以下のCコードを有する:gccアセンブラの警告を取り除くにはどうすればいいですか?Cコードの ".initの不正なセクション属性の設定"警告?
struct myStruct_t
{
const char m_name[60];
const uint32_t m_data;
};
const struct myStruct_t myStruct
__attribute__((__aligned__(64), section(".init"))) =
{
"myName",
(uint32_t)&someOtherStruct
};
Iは、(PS3用)GCC 4.1.1でコンパイル、私は警告を取得:
1>c:/t/ccy6.s: Assembler messages:
1>c:/t/ccy6.s(106): Warning: setting incorrect section attributes for .init
アセンブリコード警告ポイントであるとします以下の「.SECTION」句は:.INIT中のものは、可能なすべての場所で 『constの』読み取り専用であるため、
.section .init,"aw",@progbits
.align 6
.type myStruct , @object
.size myStruct , 64
myStruct :
.ascii "myName"
.long someOtherStruct
それはフラグの 『W』(書き込み可能な)部分を好きではないのdoesn強要しないコンパイラは "w"を吐き出さないようにします。私はどのようにしてコンパイラに "いいえ、本当にconst、私は冗談ではない"と言うことができますか?
どのGCCのバージョンを使用していますか?これにより、gcc-3.4.5 –
4.1.1(PS3用)の警告が表示され、それを反映するOPが更新されました。よかった、ありがとう。 –