From cbe6e5b7fece38623d5eab43b71a83d1b6c7f323 Mon Sep 17 00:00:00 2001 From: Kendall Condon Date: Fri, 27 Jun 2025 13:42:50 -0400 Subject: [PATCH] langref: clarify allowed atomic types Floats are not allowed in @cmpxchg Packed structs are allowed for all atomic builtins --- doc/langref.html.in | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/doc/langref.html.in b/doc/langref.html.in index e8189e5c42..e3aa8c584f 100644 --- a/doc/langref.html.in +++ b/doc/langref.html.in @@ -4319,7 +4319,7 @@ comptime {

{#syntax#}T{#endsyntax#} must be a pointer, a {#syntax#}bool{#endsyntax#}, a float, - an integer or an enum. + an integer, an enum, or a packed struct.

{#syntax#}AtomicOrder{#endsyntax#} can be found with {#syntax#}@import("std").builtin.AtomicOrder{#endsyntax#}.

{#see_also|@atomicStore|@atomicRmw||@cmpxchgWeak|@cmpxchgStrong#} @@ -4333,7 +4333,7 @@ comptime {

{#syntax#}T{#endsyntax#} must be a pointer, a {#syntax#}bool{#endsyntax#}, a float, - an integer or an enum. + an integer, an enum, or a packed struct.

{#syntax#}AtomicOrder{#endsyntax#} can be found with {#syntax#}@import("std").builtin.AtomicOrder{#endsyntax#}.

{#syntax#}AtomicRmwOp{#endsyntax#} can be found with {#syntax#}@import("std").builtin.AtomicRmwOp{#endsyntax#}.

@@ -4347,7 +4347,7 @@ comptime {

{#syntax#}T{#endsyntax#} must be a pointer, a {#syntax#}bool{#endsyntax#}, a float, - an integer or an enum. + an integer, an enum, or a packed struct.

{#syntax#}AtomicOrder{#endsyntax#} can be found with {#syntax#}@import("std").builtin.AtomicOrder{#endsyntax#}.

{#see_also|@atomicLoad|@atomicRmw|@cmpxchgWeak|@cmpxchgStrong#} @@ -4576,8 +4576,8 @@ comptime { more efficiently in machine instructions.

- {#syntax#}T{#endsyntax#} must be a pointer, a {#syntax#}bool{#endsyntax#}, a float, - an integer or an enum. + {#syntax#}T{#endsyntax#} must be a pointer, a {#syntax#}bool{#endsyntax#}, + an integer, an enum, or a packed struct.

{#syntax#}@typeInfo(@TypeOf(ptr)).pointer.alignment{#endsyntax#} must be {#syntax#}>= @sizeOf(T).{#endsyntax#}

{#syntax#}AtomicOrder{#endsyntax#} can be found with {#syntax#}@import("std").builtin.AtomicOrder{#endsyntax#}.

@@ -4608,8 +4608,8 @@ fn cmpxchgWeakButNotAtomic(comptime T: type, ptr: *T, expected_value: T, new_val However if you need a stronger guarantee, use {#link|@cmpxchgStrong#}.

- {#syntax#}T{#endsyntax#} must be a pointer, a {#syntax#}bool{#endsyntax#}, a float, - an integer or an enum. + {#syntax#}T{#endsyntax#} must be a pointer, a {#syntax#}bool{#endsyntax#}, + an integer, an enum, or a packed struct.

{#syntax#}@typeInfo(@TypeOf(ptr)).pointer.alignment{#endsyntax#} must be {#syntax#}>= @sizeOf(T).{#endsyntax#}

{#syntax#}AtomicOrder{#endsyntax#} can be found with {#syntax#}@import("std").builtin.AtomicOrder{#endsyntax#}.