Messages in this thread | ![/](/images/icornerl.gif) | | Date | Wed, 2 Mar 2016 10:39:15 +0100 | Subject | Re: [PATCH 1/6] rtc: generic: allow building on all architectures | From | Geert Uytterhoeven <> |
| |
On Wed, Mar 2, 2016 at 10:28 AM, Andreas Schwab <schwab@linux-m68k.org> wrote: > Geert Uytterhoeven <geert@linux-m68k.org> writes: > >>> +#else >>> +#define generic_rtc_ops *(struct rtc_class_ops*)NULL >>> +#endif >>> >>> static int __init generic_rtc_probe(struct platform_device *dev) >>> { >>> struct rtc_device *rtc; >>> + const struct rtc_class_ops *ops; >>> + >>> + ops = dev_get_platdata(&dev->dev); >>> + if (!ops) >>> + ops = &generic_rtc_ops; >> >> I hope no compiler version treats "&*(struct rtc_class_ops*)NULL" as >> undefined behavior? > > Yes, that is guaranteed, the operations cancel each other (6.5.3.2#3: If > the operand is the result of a unary * operator, neither that operator > nor the & operator is evaluated and the result is as if both were > omitted).
Thanks for confirming.
Gr{oetje,eeting}s,
Geert
-- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
| ![\](/images/icornerr.gif) |