Paul Eggert wrote: > > + /* With clang up to 15.0.6 (at least), in C++ mode, [[__nodiscard__]] > > produces > > + a warning. */ > > +# if __clang_major__ >= 1000 > > I found this a little hard to follow
Indeed, I wondered whether I should add a comment. Guess I should have :) > How about something like the attached, to simplify this for Clang non-experts? I wanted the code to be prepared for the day when clang++ actually adds support for this syntax [[__nodiscard__]]. The code you are proposing optimizes the current needs, but not the future needs. I'm adding this comment instead. I hope that's clear enough. 2023-01-28 Bruno Haible <[email protected]> Clarify _GL_ATTRIBUTE_NODISCARD code. Reported by Paul Eggert. * m4/gnulib-common.m4 (gl_COMMON_BODY): Add comment regarding _GL_ATTRIBUTE_NODISCARD definition. diff --git a/m4/gnulib-common.m4 b/m4/gnulib-common.m4 index d632819864..c0181abdc5 100644 --- a/m4/gnulib-common.m4 +++ b/m4/gnulib-common.m4 @@ -381,7 +381,10 @@ AC_DEFUN([gl_COMMON_BODY], [ #ifndef _GL_ATTRIBUTE_NODISCARD # if defined __clang__ && defined __cplusplus /* With clang up to 15.0.6 (at least), in C++ mode, [[__nodiscard__]] produces - a warning. */ + a warning. + The 1000 below means a yet unknown threshold. When clang++ version X + starts supporting [[__nodiscard__]] without warning about it, you can + replace the 1000 with X. */ # if __clang_major__ >= 1000 # define _GL_ATTRIBUTE_NODISCARD [[__nodiscard__]] # endif
