> -----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

Reply via email to