Message ID | 53837035.6030208@gjlay.de |
---|---|
State | New |
Headers | show |
2014-05-26 20:47 GMT+04:00 Georg-Johann Lay <avr@gjlay.de>: > This adds a note to the user manual that code with label differences is not > supported. This is because adding an offset to a stub address as generated > with gs() will in general not yield the address of the label+offset. > > This actually occurs only if gs() has something to do, e.g. on devices with > more than 128KiB of flash; but I don't see any benefit from supporting the > feature on small devices -- left out all the problems caused by relaxing and > when gas resolves the label difference. > > Thus, add a note that it's not available on any AVR and mark the PR as > invalid. > > Ok for trunk? > > Johann > > > PR target/61044 > * doc/extend.texi (Local Labels): Note that label differences are > not supported for AVR. > > Index: doc/extend.texi > Approved. Please, apply.
Index: doc/extend.texi =================================================================== --- doc/extend.texi (revision 210936) +++ doc/extend.texi (working copy) @@ -373,6 +373,8 @@ goto *(&&foo + array[i]); This is more friendly to code living in shared libraries, as it reduces the number of dynamic relocations that are needed, and by consequence, allows the data to be read-only. +This alternative with label differences is not supported for the AVR target, +please use the first approach for AVR programs. The @code{&&foo} expressions for the same label might have different values if the containing function is inlined or cloned. If a program