> -----Original Message----- > From: > [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] > org] On Behalf Of Andrew Hutchinson > Sent: Saturday, February 16, 2008 2:23 PM > To: Wouter van Gulik; avr-gcc-list@nongnu.org > Subject: Re: [avr-gcc-list] Bug35013 - Incomplete check for > pm() annotation > > Note that this bug is also related to: > > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27192 > > which has similar issue generating "byte address" instead of word > address. Oddly my patch appears to fix that without problem, using : > > 45 0014 80E0 ldi r24,lo8(pm(foo+512)) > 46 0016 90E0 ldi r25,hi8(pm(foo+512)) > 47 0018 9093 0000 sts (q)+1,r25 > 48 001c 8093 0000 sts q,r24 > > > So it would appear problem with pm(foo+1) is more complicated than it > appears. > > Ideas? >
Functions are word aligned (16-bits). Does 'foo' evaluate to a pointer to word? Or does it evaluate to a pointer to a byte, which when adding one and then made into a pointer to flash (word aligned) doesn't give any meaningful object? _______________________________________________ AVR-GCC-list mailing list AVR-GCC-list@nongnu.org http://lists.nongnu.org/mailman/listinfo/avr-gcc-list