[webkit-dev] Idiom for functions with all return values in a switch case
annulen at yandex.ru
Thu May 11 06:36:15 PDT 2017
11.05.2017, 11:18, "Osztrogonác Csaba" <oszi at inf.u-szeged.hu>:
> On 2017.05.11. 0:32, Andy Estes wrote:
>>> On May 10, 2017, at 3:17 PM, Michael Catanzaro <mcatanzaro at igalia.com> wrote:
>>> On Tue, May 9, 2017 at 2:57 PM, Ryosuke Niwa <rniwa at webkit.org> wrote:
>>>> One annoying thing is that I've seen clang complaining about that
>>>> return statement being an unreachable statement while gcc doesn't :(.
>>>> So we probably shouldn't have return statement, not to mention that 0
>>>> may not be a valid enum value.
>>> In that case, I think I'll go with RELEASE_ASSERT_NOT_REACHED() for now... since otherwise GCC is going to complain in release builds if there is no return statement. (Won't clang complain about that too?)
>> Clang won’t complain if the switch is exhaustive and all cases return.
> It isn't possible to check if all cases return if there is
> no default label in the switch, see these comments for details:
If you create enum value that is outside of range of defined enum members,
like 2 in your example, it's already unspecified behavior.
In case of enum with holes it may be correct, but I don't think we have many
> GCC's warning is correct and clang won't complain,
> but undefined behaviour can happen in runtime.
> webkit-dev mailing list
> webkit-dev at lists.webkit.org
More information about the webkit-dev