On Tue, Oct 01, 2024 at 05:18:33PM +0300, Raag Jadav wrote: > On Tue, Oct 01, 2024 at 03:07:59PM +0300, Andy Shevchenko wrote: > > On Tue, Oct 01, 2024 at 08:08:18AM +0300, Raag Jadav wrote: > > > On Mon, Sep 30, 2024 at 03:59:59PM +0300, Andy Shevchenko wrote: > > > > On Mon, Sep 30, 2024 at 01:08:41PM +0530, Raag Jadav wrote: ... > > > > > +static const char *const drm_wedge_recovery_opts[] = { > > > > > + [DRM_WEDGE_RECOVERY_REBIND] = "rebind", > > > > > + [DRM_WEDGE_RECOVERY_BUS_RESET] = "bus-reset", > > > > > + [DRM_WEDGE_RECOVERY_REBOOT] = "reboot", > > > > > +}; > > > > > > > > Place for static_assert() is here, as it closer to the actual data we test... > > > > > > Shouldn't it be at the point of access? > > > > No, the idea of static_assert() is in word 'static', meaning it's allowed to be > > used in the global space. > > > > > If no, why do we care about the data when it's not being used? > > > > What does this suppose to mean? The assertion is for enforcing the boundaries > > that are defined by different means (constant of the size and real size of > > an array). > > The point was to simply not assert without an active user of the array, which is > not the case now but may be possible with growing functionality in the future. static_assert() is a compile-time check. How is it even related to this? So, i.o.w., you are contradicting yourself in this code: on one hand you want compile-time static checker, on the other you do not want it and rely on the usage of the function. Possible solutions: 1) remove static_assert() completely; 2) move it as I said. -- With Best Regards, Andy Shevchenko