Updated the extra parameter to __atomic_{is,always}_lock_free , and bkoz noted that the __atomic_compare_exchange documentation did not document the 'weak' parameter.

Fixed as such, seems to format fine.  OK for mainline?

Andrew


        PR c/52190
        * doc/extend.texi : Update comments for __atomic_compare_exchange and
        __atomic_{is,always}_lock_free.

Index: doc/extend.texi
===================================================================
*** doc/extend.texi     (revision 183969)
--- doc/extend.texi     (working copy)
*************** This built-in function implements an ato
*** 7146,7152 ****
  This compares the contents of @code{*@var{ptr}} with the contents of
  @code{*@var{expected}} and if equal, writes @var{desired} into
  @code{*@var{ptr}}.  If they are not equal, the current contents of
! @code{*@var{ptr}} is written into @code{*@var{expected}}.
  
  True is returned if @code{*@var{desired}} is written into
  @code{*@var{ptr}} and the execution is considered to conform to the
--- 7146,7155 ----
  This compares the contents of @code{*@var{ptr}} with the contents of
  @code{*@var{expected}} and if equal, writes @var{desired} into
  @code{*@var{ptr}}.  If they are not equal, the current contents of
! @code{*@var{ptr}} is written into @code{*@var{expected}}.  @var{weak} is true
! for weak compare_exchange, and false for the strong variation.  Many targets 
! only offer the strong variation and ignore the parameter.  When in doubt, use
! the strong variation.
  
  True is returned if @code{*@var{desired}} is written into
  @code{*@var{ptr}} and the execution is considered to conform to the
*************** All memory orders are valid.
*** 7242,7268 ****
  
  @end deftypefn
  
! @deftypefn {Built-in Function} bool __atomic_always_lock_free (size_t size)
  
! This built-in function returns true if objects of size bytes will always
! generate lock free atomic instructions for the target architecture.
! Otherwise false is returned.
  
! size must resolve to a compile time constant.
  
  @smallexample
! if (_atomic_always_lock_free (sizeof (long long)))
  @end smallexample
  
  @end deftypefn
  
! @deftypefn {Built-in Function} bool __atomic_is_lock_free (size_t size)
  
! This built-in function returns true if objects of size bytes will always
  generate lock free atomic instructions for the target architecture.  If
  it is not known to be lock free a call is made to a runtime routine named
  @code{__atomic_is_lock_free}.
  
  @end deftypefn
  
  @node Object Size Checking
--- 7245,7276 ----
  
  @end deftypefn
  
! @deftypefn {Built-in Function} bool __atomic_always_lock_free (size_t size,  
void *ptr)
  
! This built-in function returns true if objects of @var{size} bytes will always
! generate lock free atomic instructions for the target architecture.  
! @var{size} must resolve to a compile time constant and the result also 
resolves to compile time constant.
  
! @var{ptr} is an optional pointer to the object which may be used to determine
! alignment.  A value of 0 indicates typical alignment should be used.  The 
! compiler may also ignore this parameter.
  
  @smallexample
! if (_atomic_always_lock_free (sizeof (long long), 0))
  @end smallexample
  
  @end deftypefn
  
! @deftypefn {Built-in Function} bool __atomic_is_lock_free (size_t size, void 
*ptr)
  
! This built-in function returns true if objects of @var{size} bytes will always
  generate lock free atomic instructions for the target architecture.  If
  it is not known to be lock free a call is made to a runtime routine named
  @code{__atomic_is_lock_free}.
  
+ @var{ptr} is an optional pointer to the object which may be used to determine
+ alignment.  A value of 0 indicates typical alignment should be used.  The 
+ compiler may also ignore this parameter.
  @end deftypefn
  
  @node Object Size Checking

Reply via email to