On 5/18/21 5:26 PM, Michael Ellerman wrote:
[ ... ]
That was the generic header change in the patch. I was commenting about the
ppc64 specific change causing build failures.
Ah, sorry. I wasn't aware that the following is valid C code
void f1()
{
return f2();
^^^^^^
}
as long as f2() is void as well. Confusing, but we live and learn.
It might be valid, but it's still bad IMHO.
It's confusing to readers, and serves no useful purpose.
Agreed, but it is surprisingly wide-spread. Try to run the coccinelle
script below, just for fun. The script doesn't even catch instances
in include files, yet there are more than 450 hits.
Guenter
---
virtual report
@d@
identifier f;
expression e;
position p;
@@
void f(...)
{
<...
return e@p;
...>
}
@script:python depends on report@
f << d.f;
p << d.p;
@@
print "void function %s:%s() with non-void return in line %s" % (p[0].file, f,
p[0].line)