authorgravatar for goon.pri.low@gmail.comKendall Condon <goon.pri.low@gmail.com> 2025-06-27 13:42:50-04:00
committergravatar for mlugg@mlugg.co.ukMatthew Lugg <mlugg@mlugg.co.uk> 2025-07-30 09:56:38+01:00
logcbe6e5b7fece38623d5eab43b71a83d1b6c7f323
treec3d7cf585d46c8140b1850b59af75e4c595375d2
parentb0d6c227d3fe972844de5660d7398a721f2ba234

langref: clarify allowed atomic types

Floats are not allowed in @cmpxchg Packed structs are allowed for all atomic builtins

1 files changed, 7 insertions(+), 7 deletions(-)

doc/langref.html.in+7-7
......@@ -4319,7 +4319,7 @@ comptime {
43194319 </p>
43204320 <p>
43214321 {#syntax#}T{#endsyntax#} must be a pointer, a {#syntax#}bool{#endsyntax#}, a float,
4322 an integer or an enum.
4322 an integer, an enum, or a packed struct.
43234323 </p>
43244324 <p>{#syntax#}AtomicOrder{#endsyntax#} can be found with {#syntax#}@import("std").builtin.AtomicOrder{#endsyntax#}.</p>
43254325 {#see_also|@atomicStore|@atomicRmw||@cmpxchgWeak|@cmpxchgStrong#}
......@@ -4333,7 +4333,7 @@ comptime {
43334333 </p>
43344334 <p>
43354335 {#syntax#}T{#endsyntax#} must be a pointer, a {#syntax#}bool{#endsyntax#}, a float,
4336 an integer or an enum.
4336 an integer, an enum, or a packed struct.
43374337 </p>
43384338 <p>{#syntax#}AtomicOrder{#endsyntax#} can be found with {#syntax#}@import("std").builtin.AtomicOrder{#endsyntax#}.</p>
43394339 <p>{#syntax#}AtomicRmwOp{#endsyntax#} can be found with {#syntax#}@import("std").builtin.AtomicRmwOp{#endsyntax#}.</p>
......@@ -4347,7 +4347,7 @@ comptime {
43474347 </p>
43484348 <p>
43494349 {#syntax#}T{#endsyntax#} must be a pointer, a {#syntax#}bool{#endsyntax#}, a float,
4350 an integer or an enum.
4350 an integer, an enum, or a packed struct.
43514351 </p>
43524352 <p>{#syntax#}AtomicOrder{#endsyntax#} can be found with {#syntax#}@import("std").builtin.AtomicOrder{#endsyntax#}.</p>
43534353 {#see_also|@atomicLoad|@atomicRmw|@cmpxchgWeak|@cmpxchgStrong#}
......@@ -4576,8 +4576,8 @@ comptime {
45764576 more efficiently in machine instructions.
45774577 </p>
45784578 <p>
4579 {#syntax#}T{#endsyntax#} must be a pointer, a {#syntax#}bool{#endsyntax#}, a float,
4580 an integer or an enum.
4579 {#syntax#}T{#endsyntax#} must be a pointer, a {#syntax#}bool{#endsyntax#},
4580 an integer, an enum, or a packed struct.
45814581 </p>
45824582 <p>{#syntax#}@typeInfo(@TypeOf(ptr)).pointer.alignment{#endsyntax#} must be {#syntax#}>= @sizeOf(T).{#endsyntax#}</p>
45834583 <p>{#syntax#}AtomicOrder{#endsyntax#} can be found with {#syntax#}@import("std").builtin.AtomicOrder{#endsyntax#}.</p>
......@@ -4608,8 +4608,8 @@ fn cmpxchgWeakButNotAtomic(comptime T: type, ptr: *T, expected_value: T, new_val
46084608 However if you need a stronger guarantee, use {#link|@cmpxchgStrong#}.
46094609 </p>
46104610 <p>
4611 {#syntax#}T{#endsyntax#} must be a pointer, a {#syntax#}bool{#endsyntax#}, a float,
4612 an integer or an enum.
4611 {#syntax#}T{#endsyntax#} must be a pointer, a {#syntax#}bool{#endsyntax#},
4612 an integer, an enum, or a packed struct.
46134613 </p>
46144614 <p>{#syntax#}@typeInfo(@TypeOf(ptr)).pointer.alignment{#endsyntax#} must be {#syntax#}>= @sizeOf(T).{#endsyntax#}</p>
46154615 <p>{#syntax#}AtomicOrder{#endsyntax#} can be found with {#syntax#}@import("std").builtin.AtomicOrder{#endsyntax#}.</p>