From: Andi Kleen Date: Fri, 21 Jun 2013 13:51:37 +0000 (+0000) Subject: Improve __atomic_clear/test_and_set documentation X-Git-Tag: releases/gcc-4.9.0~5290 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cca410b69b25a729ea3a4d3614426e380c688ca4;p=thirdparty%2Fgcc.git Improve __atomic_clear/test_and_set documentation Document that __atomic_clear and __atomic_test_and_set should only be used with bool. gcc/: 2013-06-21 Andi Kleen * doc/extend.texi: Document that __atomic_clear and __atomic_test_and_set should only be used with bool. From-SVN: r200303 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c18f056d06e2..16590940a0dd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2013-06-21 Andi Kleen + + * doc/extend.texi: Document that __atomic_clear and + __atomic_test_and_set should only be used with bool. + 2013-06-20 Jan Hubicka * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Use diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index 6ce26efbe1e2..213cf00a7385 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -7439,6 +7439,8 @@ This built-in function performs an atomic test-and-set operation on the byte at @code{*@var{ptr}}. The byte is set to some implementation defined nonzero ``set'' value and the return value is @code{true} if and only if the previous contents were ``set''. +It should be only used for operands of type @code{bool} or @code{char}. For +other types only part of the value may be set. All memory models are valid. @@ -7448,6 +7450,10 @@ All memory models are valid. This built-in function performs an atomic clear operation on @code{*@var{ptr}}. After the operation, @code{*@var{ptr}} contains 0. +It should be only used for operands of type @code{bool} or @code{char} and +in conjunction with @code{__atomic_test_and_set}. +For other types it may only clear partially. If the type is not @code{bool} +prefer using @code{__atomic_store}. The valid memory model variants are @code{__ATOMIC_RELAXED}, @code{__ATOMIC_SEQ_CST}, and