On Sep 12, 2013, at 2:07 PM, Ryosuke Niwa <rn...@webkit.org> wrote:

> http://trac.webkit.org/changeset/155643 broke Qt build with an error saying:
> 
> Source/JavaScriptCore/dfg/DFGGPRInfo.h:169:5: error: control reaches end of 
> non-void function [-Werror=return-type]
> cc1plus: all warnings being treated as errors
> 
> because of the following code:
> 
> GPRReg gpr(WhichValueWord which) const
> {
>     switch (which) {
>     case TagWord:
>         return tagGPR();
>     case PayloadWord:
>         return payloadGPR();
>     }
> }
> 
> But the code works just fine as is because WhichValueWord only takes two 
> values (TagWord and PayloadWord) and they're all handled in the switch 
> statement.
> 
> Can we disable this warning so that we don't have to add a bogus code like 
> the one I had to add in 
> http://trac.webkit.org/changeset/155649/trunk/Source/JavaScriptCore/dfg/DFGGPRInfo.h
>  ?

I don’t think disabling the warning is the right thing to do.

Since there’s no runtime guarantee that the enum will have a valid value, I 
think there needs to be a return statement outside the switch, even if we have 
ASSERT_NOT_REACHED before it.

-- Darin
_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev

Reply via email to