[patch, doc] reorganize function attribute documentation

Sandra Loosemore sandra@codesourcery.com
Fri Apr 24 02:28:00 GMT 2015


This patch is another incremental step in cleaning up the attribute 
documentation in extend.texi.  Here I have tried to bring some sanity to 
the function attribute section by splitting off subsections to cover 
target-specific attributes and behavior, and alphabetizing the main 
table of common attributes.  Continuing the series as I have time to 
work on it, I plan to group all the attribute sections together instead 
of interspersing them with unrelated material, consolidate/rewrite the 
introductory text, and move the attribute syntax discussion before the 
sections on specific attributes.

I realize this patch is gigantic and unreadable by itself because of the 
churn from moving things around.  I've attached an outline of the new 
section structure (extracted with the help of grep, etc).  I confirmed 
that I hadn't accidentally lost any hunks of text by also extracting all 
the @cindex entries (see r221614, where I made sure that every attribute 
had one) and comparing sorted before/after lists.

I'll commit this in a few days if I don't get any complaints that this 
is a dumb idea ;-) or specific suggestions or a request for more time to 
review the patch.  At this point, though, I don't want to get too bogged 
down in polishing the text -- I'm trying to focus on fixing the document 
structure and making it easier to find things.

-Sandra

-------------- next part --------------
@section Declaring Attributes of Functions

@subsection Common Function Attributes
  alias ("@var{target}")
  aligned (@var{alignment})
  alloc_align
  alloc_size
  always_inline
  artificial
  assume_aligned
  bnd_instrument
  bnd_legacy
  cold
  const
  constructor
  destructor
  constructor (@var{priority})
  destructor (@var{priority})
  deprecated
  deprecated (@var{msg})
  error ("@var{message}")
  warning ("@var{message}")
  externally_visible
  flatten
  format (@var{archetype}, @var{string-index}, @var{first-to-check})
  format_arg (@var{string-index})
  gnu_inline
  hot
  ifunc ("@var{resolver}")
  interrupt
  interrupt_handler
  leaf
  malloc
  no_icf
  no_instrument_function
  no_reorder
  no_sanitize_address
  no_address_safety_analysis
  no_sanitize_thread
  no_sanitize_undefined
  no_split_stack
  noclone
  noinline
  nonnull (@var{arg-index}, @dots{})
  noreturn
  nothrow
  optimize
  pure
  returns_nonnull
  returns_twice
  section ("@var{section-name}")
  sentinel
  stack_protect
  target (@var{options})
  unused
  used
  visibility ("@var{visibility_type}")
  warn_unused_result
  weak
  weakref
  weakref ("@var{target}")

@subsection ARC Function Attributes
  interrupt
  long_call
  medium_call
  short_call

@subsection ARM Function Attributes
  interrupt
  isr
  long_call
  short_call
  naked
  pcs

@subsection AVR Function Attributes
  interrupt
  naked
  OS_main
  OS_task
  signal

@subsection Blackfin Function Attributes
  exception_handler
  interrupt_handler
  kspisusp
  l1_text
  l2
  longcall
  shortcall
  nesting
  nmi_handler
  saveall

@subsection CR16 Function Attributes
  interrupt

@subsection Epiphany Function Attributes
  disinterrupt
  forwarder_section
  interrupt
  long_call
  short_call

@subsection H8/300 Function Attributes
  function_vector
  interrupt_handler
  saveall

@subsection IA-64 Function Attributes
  syscall_linkage
  version_id

@subsection M32C Function Attributes
  bank_switch
  fast_interrupt
  function_vector
  interrupt

@subsection M32R/D Function Attributes
  interrupt
  model (@var{model-name})

@subsection m68k Function Attributes
  interrupt
  interrupt_handler
  interrupt_thread

@subsection MCORE Function Attributes
  naked

@subsection MeP Function Attributes
  disinterrupt
  interrupt
  near
  far
  vliw

@subsection MicroBlaze Function Attributes
  save_volatiles
  break_handler

@subsection Microsoft Windows Function Attributes
  dllexport
  dllimport

@subsection MIPS Function Attributes
  interrupt
  long_call
  near
  far
  mips16
  nomips16
  micromips, MIPS
  nomicromips, MIPS
  nocompression

@subsection MSP430 Function Attributes
  critical
  interrupt
  naked
  reentrant
  wakeup

@subsection NDS32 Function Attributes
  exception
  interrupt
  naked
  reset

@subsection Nios II Function Attributes
  target (@var{options})

@subsection PowerPC Function Attributes
  longcall
  shortcall
  target (@var{options})

@subsection RL78 Function Attributes
  interrupt
  brk_interrupt
  naked

@subsection RX Function Attributes
  fast_interrupt
  interrupt
  naked
  vector

@subsection S/390 Function Attributes
  hotpatch (@var{halfwords-before-function-label},@var{halfwords-after-function-label})

@subsection SH Function Attributes
  function_vector
  interrupt_handler
  nosave_low_regs
  renesas
  resbank
  sp_switch
  trap_exit
  trapa_handler

@subsection SPU Function Attributes
  naked

@subsection Symbian OS Function Attributes

@subsection Visium Function Attributes
  interrupt

@subsection x86 Function Attributes
  cdecl
  fastcall
  thiscall
  ms_abi
  sysv_abi
  callee_pop_aggregate_return (@var{number})
  ms_hook_prologue
  regparm (@var{number})
  sseregparm
  force_align_arg_pointer
  stdcall
  target (@var{options})

@subsection Xstormy16 Function Attributes
  interrupt
-------------- next part --------------
A non-text attachment was scrubbed...
Name: attr-doc-1.log
Type: text/x-log
Size: 476 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20150424/856590c0/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: attr-doc-1.patch.gz
Type: application/x-gzip
Size: 45138 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20150424/856590c0/attachment-0001.bin>


More information about the Gcc-patches mailing list