https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119185

--- Comment #5 from Uroš Platiše <uros at isotel dot org> ---
If it is called directly it could hold NULL, but typically hardware abstraction
device drivers are never called directly. And now you typically have macros
i.e. one of the drivers "work-around" for this:

#define ISN_DRV_GETSENDBUF(obj, buf, size, caller)      ((isn_driver_t
*)obj)->getsendbuf(obj, buf, size, caller)
#define ISN_DRV_SEND(obj, buf, size)                    ((isn_driver_t
*)obj)->send(obj, buf, size)
#define ISN_DRV_FREE(obj, buf)                          ((isn_driver_t
*)obj)->free(obj, buf)
#define ISN_DRV_FORWARD(obj, src, size, caller)         ((isn_driver_t
*)obj)->forward(obj, src, size, caller)

My assumption was that the object is anyway in the regs and the mere issue
would be accessing its value.

When to bring C++ to tiny micro-controllers is always a debate, as long even
linux kernel does not want to switch to C++.

Reply via email to