On Thu, 5 Oct 2023 15:25:21 -0600 Ross Zwisler <zwisler@xxxxxxxxxx> wrote: > That's some scary deep magic. :) Yeah it is. Hence the detailed change log, and not just: "The macro prevents static traceeval_data *keys from being used" > > We may want to add a comment above this to briefly explain, i.e. "This macro > will fail to build if 'data' is a pointer and not a static array" and refer > them to the commit history? That way they have some way to proceed if/when > their build fails. Well, I don't think they need to understand how the macro work. But just why it failed. Even though new compilers also warn about why it doesn't work, I can still add: /* * If your compile failed due to the below macro, it is likely you used * a pointer to struct traceeval_data, and not a static array. * * That is: * * struct traceeval_data *keys; * * and not: * * struct traceeval_data keys[] = { ... }; */ I'll send a v2 > > Otherwise looks good: > Reviewed-by: Ross Zwisler <zwisler@xxxxxxxxxx> Thanks! -- Steve