11.05.2017, 11:18, "Osztrogonác Csaba" <[email protected]>:
> Hi,
>
> On 2017.05.11. 0:32, Andy Estes wrote:
>>>  On May 10, 2017, at 3:17 PM, Michael Catanzaro <[email protected]> 
>>> wrote:
>>>
>>>  On Tue, May 9, 2017 at 2:57 PM, Ryosuke Niwa <[email protected]> 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.
>>
>>  Andy
>
> It isn't possible to check if all cases return if there is
> no default label in the switch, see these comments for details:
> https://bugs.webkit.org/show_bug.cgi?id=150842#c3

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
of those.

>
> GCC's warning is correct and clang won't complain,
> but undefined behaviour can happen in runtime.
>
> br,
> Ossy
> _______________________________________________
> webkit-dev mailing list
> [email protected]
> https://lists.webkit.org/mailman/listinfo/webkit-dev

-- 
Regards,
Konstantin
_______________________________________________
webkit-dev mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-dev

Reply via email to