[CC += Andreas] On 11/27/22 13:30, Alejandro Colomar wrote: > [CC += all CCs from man-pages patches] > > Hi Seija, > > On 11/27/22 01:56, Seija K. via Libc-alpha wrote: >> The format value has to be a string literal, every time. Otherwise, you are >> not using these functions correctly. To reinforce this fact, I put >> __restrict over every example of this I could find. > > > I like this change.  In fact, when I added 'restrict' to the Linux man-pages, I > had to check that in some cases POSIX and glibc matched, but in others, either > glibc or POSIX had restrict while the other didn't: > > Linux man-pages commits: > > -  746d60af802a4462055c4f87a62681f7254325d8 [strptime(3)] >    -  You fixed this one in the patch; fine. > -  0864c240797e3b793a88ee6be5710dd9a8df9b45 [posix_spawnp(3)] >    -  This one hasn't been changed in you patch; please check. >    -  Bug reported here: >    -  See some proof below. > -  c445280cf371cda66916c4e5e0fdb168db3a5ad6 [lio_listio(3)] >    -  This one hasn't been changed in you patch; please check. >    -  Bug reported here: >    -  See some proof below. > > I might have missed other cases by accident, but I think those 3 are all the > cases where POSIX uses restrict and glibc doesn't (there are many more cases of > the opposite, but that's OK for your patch), as far as I documented back then > when I added restrict to the man-pages. > > Cheers, > > Alex > > P.S.: I'm neutral to having the 'restrict' keyword in function definitions, if > they are already in function prototypes (Mike reported this). > > --- posix_spawnp(3): > > $ man 3p posix_spawnp |sed -n '/^SYNOPSIS/,/;/p' > SYNOPSIS >        #include > >        int posix_spawnp(pid_t *restrict pid, const char *restrict file, >            const posix_spawn_file_actions_t *file_actions, >            const posix_spawnattr_t *restrict attrp, >            char *const argv[restrict], char *const envp[restrict]); > $ grepc posix_spawnp /usr/include > /usr/include/spawn.h:85: > extern int posix_spawnp (pid_t *__pid, const char *__file, >              const posix_spawn_file_actions_t *__file_actions, >              const posix_spawnattr_t *__attrp, >              char *const __argv[], char *const __envp[]) >     __nonnull ((2, 5)); > > --- lio_listio(3): > > $ man 3p lio_listio |sed -n '/^SYNOPSIS/,/;/p' > SYNOPSIS >        #include > >        int lio_listio(int mode, struct aiocb *restrict const list[restrict], >            int nent, struct sigevent *restrict sig); > $ grepc lio_listio /usr/include > /usr/include/aio.h:148: > extern int lio_listio (int __mode, >                struct aiocb *const __list[__restrict_arr], >                int __nent, struct sigevent *__restrict __sig) >   __THROW __nonnull ((2)); > > > /usr/include/aio.h:214: > #  define lio_listio lio_listio64 --