Hi Joseph,
On Mon, Nov 24, 2025 at 10:51:08PM +0000, Joseph Myers wrote:
> On Sat, 22 Nov 2025, Alejandro Colomar wrote:
>
> > @@ -10528,9 +10529,12 @@ c_parser_cast_expression (c_parser *parser, struct
> > c_expr *after)
> > _Countof ( type-name )
> > sizeof unary-expression
> > sizeof ( type-name )
> > + _Maxof ( type-name )
> > + _Minof ( type-name )
> > static-assert-declaration-no-semi
> >
> > - (_Countof and the use of static assertions in expressions are new in
> > C2y.)
> > + (_Countof, _Maxof, _Minof, and the use of static assertions in
> > + expressions are new in C2y.)
>
> This comment isn't currently accurate, given the status of these operators
> as an extension.
>
> > +/* Return the result of minof applied to T, a structure for the type
> > + name passed to minof (rather than the type itself). LOC is the
> > + location of the original expression. */
> > +
> > +struct c_expr
> > +c_expr_minof_type (location_t loc, struct c_type_name *t)
> > +{
> > + tree type;
> > + struct c_expr ret;
> > + tree type_expr = NULL_TREE;
> > + bool type_expr_const = true;
> > + type = groktypename (t, &type_expr, &type_expr_const);
> > + ret.value = c_minof_type (loc, type);
> > + c_last_sizeof_arg = type;
> > + c_last_sizeof_loc = loc;
> > + ret.original_code = MAXOF_EXPR;
>
> I think you mean MINOF_EXPR here.
>
> > +@node _Maxof and _Minof
> > +@subsection The maximum and minimum representable values of a type
> > +@findex _Maxof
> > +@findex _Minof
> > +
> > +The keywords @code{_Maxof} and @code{_Minof} determine
> > +the maximum and minimum representable values of an integer type.
> > +Its syntax is similar to @code{sizeof}.
>
> "Its syntax" (singular) doesn't agree in number with "keywords" (plural).
> Try "Their syntax".
>
> > +The operand must be
> > +a parenthesized integer type.
> > +The result of this operator is an integer constant expression.
>
> And then it's operators (plural).
>
> > +For example:
> > +
> > +@smallexample
> > +_Maxof (int); // returns INT_MAX
> > +_Minof (short); // returns SHRT_MIN
>
> Returns SHRT_MIN *in type short* if you want to be precise, though you
> don't explicitly say what the type is above. (Whereas the <limits.h>
> macros are in a type subject to integer promotions, so SHRT_MIN has type
> int.)Thanks for the review! I've amended all of these issues. I'll send v7 after testing ends. Have a lovely night! Alex -- <https://www.alejandro-colomar.es> Use port 80 (that is, <...:80/>).
signature.asc
Description: PGP signature
