extend.texi (Function Attributes): Update 'naked' attribute documentation.
authorDavid Wohlferd <dw@LimeGreenSocks.com>
Sun, 29 Jun 2014 21:21:59 +0000 (21:21 +0000)
committerGerald Pfeifer <gerald@gcc.gnu.org>
Sun, 29 Jun 2014 21:21:59 +0000 (21:21 +0000)
* doc/extend.texi (Function Attributes): Update 'naked' attribute
documentation.

From-SVN: r212128

gcc/ChangeLog
gcc/doc/extend.texi

index 70bf17e80e779d5b2a2cbf829b5a05bf8973e00f..a57eed524655577ca6d8a20b8d674b305383b51f 100644 (file)
@@ -1,3 +1,8 @@
+2014-06-29  David Wohlferd <dw@LimeGreenSocks.com>
+
+       * doc/extend.texi (Function Attributes): Update 'naked' attribute
+       documentation.
+
 2014-06-29  Tobias Grosser <tobias@grosser.es>
 
        PR bootstrap/61650
index ed9d1411f142d946fa2978bb186e22ffe3835d7d..cdfcce77163ebd5cac0a615068958a89522b540b 100644 (file)
@@ -3358,16 +3358,15 @@ allowed value is 1000000.
 
 @item naked
 @cindex function without a prologue/epilogue code
-Use this attribute on the ARM, AVR, MCORE, MSP430, NDS32, RL78, RX and SPU
-ports to indicate that the specified function does not need prologue/epilogue
-sequences generated by the compiler.
-It is up to the programmer to provide these sequences. The
-only statements that can be safely included in naked functions are
-@code{asm} statements that do not have operands.  All other statements,
-including declarations of local variables, @code{if} statements, and so
-forth, should be avoided.  Naked functions should be used to implement the
-body of an assembly function, while allowing the compiler to construct
-the requisite function declaration for the assembler.
+This attribute is available on the ARM, AVR, MCORE, MSP430, NDS32,
+RL78, RX and SPU ports.  It allows the compiler to construct the
+requisite function declaration, while allowing the body of the
+function to be assembly code. The specified function will not have
+prologue/epilogue sequences generated by the compiler. Only Basic
+@code{asm} statements can safely be included in naked functions
+(@pxref{Basic Asm}). While using Extended @code{asm} or a mixture of
+Basic @code{asm} and ``C'' code may appear to work, they cannot be
+depended upon to work reliably and are not supported.
 
 @item near
 @cindex functions that do not handle memory bank switching on 68HC11/68HC12
@@ -6304,6 +6303,8 @@ Using Extended @code{asm} will typically produce smaller, safer, and more
 efficient code, and in most cases it is a better solution. When writing 
 inline assembly language outside of C functions, however, you must use Basic 
 @code{asm}. Extended @code{asm} statements have to be inside a C function.
+Functions declared with the @code{naked} attribute also require Basic 
+@code{asm} (@pxref{Function Attributes}).
 
 Under certain circumstances, GCC may duplicate (or remove duplicates of) your 
 assembly code when optimizing. This can lead to unexpected duplicate 
@@ -6423,6 +6424,8 @@ programs.
 
 Note that Extended @code{asm} statements must be inside a function. Only 
 Basic @code{asm} may be outside functions (@pxref{Basic Asm}).
+Functions declared with the @code{naked} attribute also require Basic 
+@code{asm} (@pxref{Function Attributes}).
 
 While the uses of @code{asm} are many and varied, it may help to think of an 
 @code{asm} statement as a series of low-level instructions that convert input