This attribute has been documented similarly in the sections for 12
different targets. I think it's time to promote this to a common
attribute and document it only once with a warning that it's not
supported everywhere.
gcc/ChangeLog
PR other/88472
* doc/extend.texi (Common Attributes): Document the "naked"
attribute here.
(ARC Attributes): Delete entry for "naked".
(ARM Attributes): Likewise.
(AVR Attributes): Likewise.
(BPF Attributes): Likewise.
(C-SKY Attributes): Likewise.
(MCORE Attributes): Delete entire section since "naked" was
the only thing listed.
(MSP430 Attributes): Delete entry for "naked".
(NDS32 Attributes): Likewise.
(RISC-V Attributes): Likewise.
(RL78 Attributes): Likewise.
(RX Attributes): Likewise.
(x86 Attributes): Likewise.
---
gcc/doc/extend.texi | 180 ++++----------------------------------------
1 file changed, 16 insertions(+), 164 deletions(-)
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi
index d7c2dc8d703..4a96fd0a529 100644
--- a/gcc/doc/extend.texi
+++ b/gcc/doc/extend.texi
@@ -3511,6 +3511,22 @@ It is not possible to avoid the warning in this way if
the maybe-escaped
variable is a function argument, because those are in scope
for the whole function.
+@cindex @code{naked} function attribute
+@item naked
+This attribute applies to functions.
+
+It allows the compiler to construct the requisite function
+declaration, while allowing the body of the function to be assembly
+code. The specified function does 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.
+
+Not all targets support this attribute. Those that do include ARC, ARM,
+AVR, BPF, C-SKY, MCORE, MSP430, NDS32, RISC-V, RL78, RX, and x86.
+
@cindex @code{no_icf} attribute
@item no_icf
This attribute can be applied to functions or variables.
@@ -5573,7 +5589,6 @@ The default for the attribute is controlled by
@option{-fzero-call-used-regs}.
* M32C Attributes::
* M32R/D Attributes::
* m68k Attributes::
-* MCORE Attributes::
* MicroBlaze Attributes::
* Microsoft Windows Attributes::
* MIPS Attributes::
@@ -5981,19 +5996,6 @@ It allows you to mark secure-code functions that are
callable from normal mode. The location of the secure call function
into the @code{sjli} table needs to be passed as argument.
-@cindex @code{naked} function attribute, ARC
-@item naked
-This attribute applies to functions.
-
-It allows the compiler to construct the requisite function
-declaration, while allowing the body of the function to be assembly
-code. The specified function does 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.
-
@cindex @code{aux} variable attribute, ARC
@item aux
This attribute applies to variables.
@@ -6079,19 +6081,6 @@ calling sequence. The @code{short_call} attribute
always places
the offset to the function from the call site into the @samp{BL}
instruction directly.
-@cindex @code{naked} function attribute, ARM
-@item naked
-This attribute applies to functions.
-
-It allows the compiler to construct the
-requisite function declaration, while allowing the body of the
-function to be assembly code. The specified function does 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.
-
@cindex @code{pcs} function attribute, ARM
@item pcs
This attribute applies to functions.
@@ -6315,19 +6304,6 @@ and @code{noblock} together has the same effect like
using the @code{interrupt}
attribute. Using the @code{noblock} attribute without @code{signal} has no
effect.
-@cindex @code{naked} function attribute, AVR
-@item naked
-This attribute applies to functions.
-
-It allows the compiler to construct the
-requisite function declaration, while allowing the body of the
-function to be assembly code. The specified function does 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.
-
@cindex @code{no_gccisr} function attribute, AVR
@item no_gccisr
This attribute applies to functions.
@@ -6697,19 +6673,6 @@ int bpf_probe_read (void *dst, int size, const void
*unsafe_ptr)
__attribute__ ((kernel_helper (4)));
@end smallexample
-@cindex @code{naked} function attribute, BPF
-@item naked
-This attribute applies to functions.
-
-It allows the compiler to construct the requisite function
-declaration, while allowing the body of the function to be assembly
-code. The specified function does 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.
-
@cindex @code{preserve_access_index} type attribute, BPF
@item preserve_access_index
This attribute applies to types.
@@ -6743,19 +6706,6 @@ use in an interrupt handler when either of these
attributes are present.
Use of these options requires the @option{-mistack} command-line option
to enable support for the necessary interrupt stack instructions. They
are ignored with a warning otherwise. @xref{C-SKY Options}.
-
-@cindex @code{naked} function attribute, C-SKY
-@item naked
-This attribute applies to functions.
-
-This attribute allows the compiler to construct the
-requisite function declaration, while allowing the body of the
-function to be assembly code. The specified function does 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.
@end table
@@ -7429,26 +7379,6 @@ sequences and replaces the return instruction with a
@code{sleep}
instruction. This attribute is available only on fido.
@end table
-@node MCORE Attributes
-@subsubsection MCORE Attributes
-
-These attributes are supported by the MCORE back end:
-
-@table @code
-@cindex @code{naked} function attribute, MCORE
-@item naked
-This attribute applies to functions.
-
-It allows the compiler to construct the
-requisite function declaration, while allowing the body of the
-function to be assembly code. The specified function does 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.
-@end table
-
@node MicroBlaze Attributes
@subsubsection MicroBlaze Attributes
@@ -7854,19 +7784,6 @@ match up with appropriate entries in the linker script.
By default
the names @code{watchdog} for vector 26, @code{nmi} for vector 30 and
@code{reset} for vector 31 are recognized.
-@cindex @code{naked} function attribute, MSP430
-@item naked
-This attribute applies to functions.
-
-This attribute allows the compiler to construct the
-requisite function declaration, while allowing the body of the
-function to be assembly code. The specified function does 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.
-
@cindex @code{reentrant} function attribute, MSP430
@item reentrant
This attribute applies to functions.
@@ -7979,19 +7896,6 @@ The system will help save caller registers into stack
before entering
interrupt handler.
@end table
-@cindex @code{naked} function attribute, NDS32
-@item naked
-This attribute applies to functions.
-
-It allows the compiler to construct the
-requisite function declaration, while allowing the body of the
-function to be assembly code. The specified function does 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.
-
@cindex @code{reset} function attribute, NDS32
@cindex reset handler functions
@item reset
@@ -8273,19 +8177,6 @@ These attributes mainly are intended to support the
@code{__vector},
These attributes are supported by the RISC-V back end:
@table @code
-@cindex @code{naked} function attribute, RISC-V
-@item naked
-This attribute applies to functions.
-
-It allows the compiler to construct the
-requisite function declaration, while allowing the body of the
-function to be assembly code. The specified function does 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.
-
@cindex @code{interrupt} function attribute, RISC-V
@item interrupt
This attribute applies to functions.
@@ -8415,19 +8306,6 @@ Use @code{brk_interrupt} instead of @code{interrupt} for
handlers intended to be used with the @code{BRK} opcode (i.e.@: those
that must end with @code{RETB} instead of @code{RETI}).
-@cindex @code{naked} function attribute, RL78
-@item naked
-This attribute applies to functions.
-
-It allows the compiler to construct the
-requisite function declaration, while allowing the body of the
-function to be assembly code. The specified function does 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.
-
@cindex @code{saddr} variable attribute, RL78
@item saddr
This attribute applies to variables.
@@ -8484,19 +8362,6 @@ void __attribute__ ((interrupt
(RXD1_VECT,RXD2_VECT,"dct","$default")))
txd1_handler ();
@end smallexample
-@cindex @code{naked} function attribute, RX
-@item naked
-This attribute applies to functions.
-
-It allows the compiler to construct the
-requisite function declaration, while allowing the body of the
-function to be assembly code. The specified function does 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.
-
@cindex @code{vector} function attribute, RX
@item vector
This attribute applies to functions.
@@ -8818,19 +8683,6 @@ this function attribute to make GCC generate the
``hot-patching'' function
prologue used in Win32 API functions in Microsoft Windows XP Service Pack 2
and newer.
-@cindex @code{naked} function attribute, x86
-@item naked
-This attribute applies to functions.
-
-It allows the compiler to construct the
-requisite function declaration, while allowing the body of the
-function to be assembly code. The specified function does 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.
-
@cindex @code{regparm} function attribute, x86
@cindex functions that are passed arguments in registers on x86-32
@item regparm (@var{number})
--
2.39.5