[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] regexec: fix unintentinal fallthrough warning with GCC7
From: |
Andrei Borzenkov |
Subject: |
Re: [PATCH] regexec: fix unintentinal fallthrough warning with GCC7 |
Date: |
Thu, 23 Mar 2017 20:13:57 +0300 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 |
23.03.2017 20:08, Eric Blake пишет:
> On 03/23/2017 11:27 AM, Andrei Borzenkov wrote:
>
>>>
>>> (that is, swap the #endif and FALLTHROUGH lines)?
>>>
>>
>> The result is wrong when code is ifdef'ed out, because preceding case
>> label must *not* fall through into this one.
>
> Rather than "must not", it "does not" fall through. But does gcc warn
> if the magic /* FALLTHROUGH */ comment is present even when it is not
> utilized?
>
No, this silence the warning.
>>
>> case SIMPLE_BRACKET:
>> if (!bitset_contain (node->opr.sbcset, ch))
>> return false;
>> break;
>>
>> #ifdef RE_ENABLE_I18N
>> case OP_UTF8_PERIOD:
>> if (ch >= ASCII_CHARS)
>> return false;
>> /* FALLTHROUGH */
>> #endif
>> case OP_PERIOD:
>>
>> If RE_ENABLE_I18N is not defined, FALLTHROUGH will be attributed to
>> wrong branch.
>
> Yes, but that should be harmless.
>
>> If someone happens to add case label before #ifdef, it
>> will be rather hard to spot.
>
> Isn't that what code review is for?
>
Yes in ideal world. I would not do it personally.
signature.asc
Description: OpenPGP digital signature