Ich habe den folgenden C-Code:Wie gcc Assembler Warnung "loswerden falsche Abschnitt Attribute für .init" in C-Code loswerden?
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
};
Als ich in gcc 4.1.1 (für PS3) kompilieren, erhalte ich die Warnung:
1>c:/t/ccy6.s: Assembler messages:
1>c:/t/ccy6.s(106): Warning: setting incorrect section attributes for .init
die Code-Anordnung an die Warnpunkte ist die „.section“ Klausel unter:
.section .init,"aw",@progbits
.align 6
.type myStruct , @object
.size myStruct , 64
myStruct :
.ascii "myName"
.long someOtherStruct
Es mag nicht das ‚w‘ (beschreibbar) Teil der Flags seit Sachen in .init schreibgeschützt ist, und ‚const‘ in allen möglichen Orten doesn nicht zwingen der Compiler das "w" nicht auszuspucken. Wie kann ich dem Compiler sagen "nein, wirklich, es ist const, ich mache keine Witze"?
Welche Version von GCC verwenden Sie? Dies gibt mir keine Warnungen mit gcc-3.4.5 –
4.1.1 (für PS3) .. aktualisierten OP, um das zu reflektieren. Guter Anruf, danke. –