http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53344
Bug #: 53344 Summary: Dont' emit an assembler warning when assembling 3-byte symbols Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassig...@gcc.gnu.org ReportedBy: g...@gcc.gnu.org Target: avr avr-gcc compiles extern const __pgmx char foo; const __pgmx void * pointer = &foo; to the following assembler code: .global pointer .data .type pointer, @object .size pointer, 3 pointer: .word foo .warning "assembling 24-bit address needs binutils extension for hh8(foo)" .byte 0 ; hh8(foo) Rationale is that the needed extension to assemble 3-byte symbols http://sourceware.org/bugzilla/show_bug.cgi?id=13503 is only available since binutils 2.23 The above assembler code should be changed to pointer: .byte lo8(foo) .byte hi8(foo) .byte hh8(foo) because the binutils are extended now and can handle this.