aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/doc/extend.texi6
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c18f056..1659094 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2013-06-21 Andi Kleen <ak@linux.intel.com>
+
+ * doc/extend.texi: Document that __atomic_clear and
+ __atomic_test_and_set should only be used with bool.
+
2013-06-20 Jan Hubicka <jh@suse.cz>
* gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Use
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi
index 6ce26ef..213cf00 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