RE: [PATCH v5 1/8] x86/resctrl: Prepare for new domain scope

From: Luck, Tony
Date: Thu Aug 31 2023 - 13:26:29 EST


> >I've sometimes had compilers complain about code written:
> >
> >static int get_domain_id_from_scope(int cpu, enum resctrl_scope scope)
> >{
> > switch (scope) {
> > case RESCTRL_L3_CACHE:
> > return get_cpu_cacheinfo_id(cpu, 3);
> > case RESCTRL_L2_CACHE:
> > return get_cpu_cacheinfo_id(cpu, 2);
> > default:
> > WARN_ON_ONCE(1);
> > return -1;
> > }
> >}
> >
> >because they failed to notice that every path in the switch does a "return and they
> >issue a warning that the function has no return value because they don't realize
> >that the end of the function can't be reached.
> >
> >So it's defensive programming against possible complier issues.
>
> I recall getting that error somewhere while playing around with a
> language server protocol for neovim a while ago but I tried to cause
> it today with gcc and clang and with some different flags and coulnd't.
> Are there some particular compilers or compiler flags that trigger
> that?

I think I saw this from an lkp report using clang. But it's quite possible
that the exact code construct was different in some way.

-Tony