This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[patch,doc,avr] PR61044: Note that label defferences are not supported


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]