Messages in this thread | | | From | David Laight <> | Subject | RE: [PATCH] kbuild: treat char as always signed | Date | Wed, 19 Oct 2022 21:07:01 +0000 |
| |
From: Linus Torvalds > Sent: 19 October 2022 19:11 ... > Explicit casts are bad (unless, of course, you are explicitly trying > to violate the type system, when they are both required, and a great > way to say "look, I'm doing something dangerous").
The worst ones in the kernel are the __force ones for sparse. They really ought to be a function (#define) so that they are not seen by the compiler at all. Otherwise they can hide a multitude of sins.
There are also the casts to convert integer values to/from unsigned. and to different sized integers. They all happen far too often and can hide things. A '+ 0u' will convert into to unsigned int without a cast. Casts really ought to be rare. Even the casts to from (void *) (for 'buffers') can usually be made implicit in a function call argument.
David
- Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)
| |