From: Herbert Xu > Sent: 29 December 2022 01:49 > > On Wed, Dec 28, 2022 at 12:30:35PM +0100, Uwe Kleine-König wrote: > > > > > - if (len) /* avoid sparse warning: memcpy with byte count of 0 */ > > > + /* Avoid gcc warning: memcpy with data == NULL */ > > > + if (!IS_ENABLED(CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG) || data) > > > > I just tried: For me a plain > > > > if (data) > > > > is also enough to make both gcc and sparse happy. > > Of course it is. The point of the extra condition is to remove > the unnecessary check on data unless we are in debugging mode > (as it is only needed in debugging mode to work around the buggy > compiler). IIRC the 'problematic' case is one where 'len' and 'data' are actually compile-time zeros - in which case you don't want to call memcpy() at all. In all other cases I think there is something to copy so you don't really want the check (or the one in memcpy() will do). Whether (builtin_constant_p(data) && !data) is good enough is another matter. It might need the (sizeof *(1 ? (void *)(data) : (int *)0) == 1) test. David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)