[webkit-dev] Idiom for functions with all return values in a switch case
oszi at inf.u-szeged.hu
Thu May 11 01:17:46 PDT 2017
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:
GCC's warning is correct and clang won't complain,
but undefined behaviour can happen in runtime.
More information about the webkit-dev