This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/53344] New: Dont' emit an assembler warning when assembling 3-byte symbols
- From: "gjl at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 14 May 2012 14:05:23 +0000
- Subject: [Bug target/53344] New: Dont' emit an assembler warning when assembling 3-byte symbols
- Auto-submitted: auto-generated
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: unassigned@gcc.gnu.org
ReportedBy: gjl@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.