On Fri, 26 Jun 2026, Arsen Arsenović wrote:

> First, we make a distinction between cv_qualifier and qualifier_set.
> 
> The former models the CVRA qualifiers, which are either present or
> absent.

Note that there is an active discussion in WG14 of possibly introducing 
the term "access qualifier" for const / volatile / restrict, with a view 
to integrating named address spaces into the C standard.

_Atomic is only syntactically a qualifier in the C standard, not 
semantically, although of course in implementation terms it's like const / 
volatile / restrict to the extent that it's either present or absent on a 
type.  It's possible that if the "access qualifier" concept is introduced, 
it would make sense to redefine _Atomic in the C standard as being a 
qualifier that's not an access qualifier; it has the property of 
qualifiers that it has no meaning for rvalues, but not the access 
qualifier properties that the layout is the same as for the unqualified 
type (_Atomic can increase size and alignment) or, thus, that it's safe to 
convert a pointer to one to a more-qualified type.  (Hence various places 
that use e.g. TYPE_QUALS_NO_ADDR_SPACE_NO_ATOMIC because they want to deal 
with access qualifiers only.)

-- 
Joseph S. Myers
[email protected]

Reply via email to