Re: [PATCH v5 5/9] powerpc/mm/book3s64: Update tlb flush routines to take a page walk cache flush argument

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 5/19/21 5:03 AM, Segher Boessenkool wrote:
On Tue, May 18, 2021 at 07:45:14PM -0500, Segher Boessenkool wrote:
On Wed, May 19, 2021 at 10:26:22AM +1000, Michael Ellerman wrote:
Guenter Roeck <linux@xxxxxxxxxxxx> writes:
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.

And it actually explicitly is undefined behaviour in C90 already
(3.6.6.4 in C90, 6.8.6.4 in C99 and later).

... but there is a GCC extension that allows this by default:
<https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wreturn-type>
   For C only, warn about a 'return' statement with an expression in a
   function whose return type is 'void', unless the expression type is
   also 'void'.  As a GNU extension, the latter case is accepted
   without a warning unless '-Wpedantic' is used.


In C99:

"6.8.6.4 The return statement
Constraints

A return statement with an expression shall not appear in a function whose return type
is void. A return statement without an expression shall only appear in a function
whose return type is void."

Sounds like invalid to me, not just undefined behavior.

Guenter




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux