On Tue, Jan 28, 2020 at 04:56:59PM +0530, Prathamesh Kulkarni wrote: > Thanks for the suggestions. In the attached patch I bumped up value of > ERF_RETURNS_ARG_MASK > to UINT_MAX >> 2, and use highest two bits for ERF_NOALIAS and > ERF_RETURNS_ARG. > And use fn spec "Z<argnum>" to store the argument number in fn-spec format. > Does that look OK ?
No. +#define ERF_RETURN_ARG_MASK (UINT_MAX >> 2) /* Nonzero if the return value is equal to the argument number flags & ERF_RETURN_ARG_MASK. */ -#define ERF_RETURNS_ARG (1 << 2) +#define ERF_RETURNS_ARG (1 << (BITS_PER_WORD - 2)) How is size of host int related to BITS_PER_WORD? Not to mention that if BITS_PER_WORD is 64 and host int is 32-bit, 1 << (64 - 2) is UB. Jakub