Re: [PATCH v2 1/2] jump_label: Explicitly disable jump labels in __init code

From: Ingo Molnar
Date: Sun Feb 18 2018 - 08:15:51 EST



* Ingo Molnar <mingo@xxxxxxxxxx> wrote:

> 2) code robustness
>
> For example:
>
> for (i = 0; i < 10; i++)
> if (foo)
> bar(i);
> baz(i);
>
> Is probably buggy code, although technically it's valid syntax and will compile
> just fine.
>
> If all multi-line statements have curly braces then this type of bug cannot occur:
>
> for (i = 0; i < 10; i++) {
> if (foo)
> bar(i);
> baz(i);
> }

Note that newer versions of GCC will warn about this pattern:

warning: this âforâ clause does not guard
this statement, but the latter is misleadingly indented as if it were guarded by the âforâ

But the warning is pretty restrictive and GCC won't warn about slightly more
complex patterns like:

for (i = 0; i < 10; i++)
if (foo)
bar(i);
// debug_fn();
baz(i);

Thanks,

Ingo