include/linux/container_of.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
* add necessary parenthesis so that
container_of_const((expr1, expr2), T, member)
compiles without warnings,
* delete unnecessary parenthesis,
* delete unnecessary cast:
container_of(ptr, T, member)
has type "T*" and doesn't need any more casts.
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
---
include/linux/container_of.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
--- a/include/linux/container_of.h
+++ b/include/linux/container_of.h
@@ -30,9 +30,9 @@
* @member: the name of the member within the struct.
*/
#define container_of_const(ptr, type, member) \
- _Generic(ptr, \
- const typeof(*(ptr)) *: ((const type *)container_of(ptr, type, member)),\
- default: ((type *)container_of(ptr, type, member)) \
+ _Generic((ptr), \
+ const typeof(*(ptr)) *: (const type *)container_of(ptr, type, member),\
+ default: container_of(ptr, type, member) \
)
#endif /* _LINUX_CONTAINER_OF_H */
On Fri, Jul 19, 2024 at 10:19:37PM +0300, Alexey Dobriyan wrote: > * add necessary parenthesis so that > > container_of_const((expr1, expr2), T, member) > > compiles without warnings, This part is bogus, I'm not sure why I wrote this. > --- a/include/linux/container_of.h > +++ b/include/linux/container_of.h > @@ -30,9 +30,9 @@ > * @member: the name of the member within the struct. > */ > #define container_of_const(ptr, type, member) \ > - _Generic(ptr, \ > - const typeof(*(ptr)) *: ((const type *)container_of(ptr, type, member)),\ > - default: ((type *)container_of(ptr, type, member)) \ > + _Generic((ptr), \ someone could sneak in additional clause... > + const typeof(*(ptr)) *: (const type *)container_of(ptr, type, member),\ > + default: container_of(ptr, type, member) \
© 2016 - 2026 Red Hat, Inc.