sys_core_fold: Optimize boolean cases more conservatively
sys_core_fold: Optimize boolean cases more conservatively

When optimizing a case construct, if the case expression is a boolean
expression that is not guaranteed to return (it calls erlang:error/1),
don't do any boolean optimizations. The boolean optimizations will be
done anyway by beam_ssa_type. If we would do the boolean optimizations
anyway, the result would be a case where the last clause is not
guaranteed to match, and that can potentially confuse other passes.

vinoski/otp,g-andrade/otp,emacsmirror/erlang,vladdu/otp,vinoski/otp,lrascao/otp,potatosalad/otp,lrascao/otp,bjorng/otp,dumbbell/otp,mikpe/otp,kvakvs/otp,ferd/otp,erlang/otp,getong/otp,dumbbell/otp,jj1bdx/otp,jj1bdx/otp,emacsmirror/erlang,isvilen/otp,kvakvs/otp,electricimp/otp,vladdu/otp,vinoski/otp,jj1bdx/otp,electricimp/otp,bjorng/otp,rlipscombe/otp,vinoski/otp,rlipscombe/otp,dumbbell/otp,ferd/otp,potatosalad/otp,mikpe/otp,g-andrade/otp,jj1bdx/otp,ferd/otp,potatosalad/otp,lrascao/otp,erlang/otp,g-andrade/otp,dgud/otp,mikpe/otp,getong/otp,jj1bdx/otp,isvilen/otp,getong/otp,bjorng/otp,g-andrade/otp,lrascao/otp,bjorng/otp,erlang/otp,jj1bdx/otp,ferd/otp,rlipscombe/otp,ferd/otp,electricimp/otp,electricimp/otp,dumbbell/otp,vinoski/otp,rlipscombe/otp,erlang/otp,dumbbell/otp,isvilen/otp,dgud/otp,mikpe/otp,electricimp/otp,getong/otp,dgud/otp,ferd/otp,kvakvs/otp,getong/otp,lrascao/otp,rlipscombe/otp,potatosalad/otp,uabboli/otp,getong/otp,potatosalad/otp,mikpe/otp,bjorng/otp,vinoski/otp,mikpe/otp,electricimp/otp,electricimp/otp,dgud/otp,vladdu/otp,emacsmirror/erlang,dumbbell/otp,rlipscombe/otp,g-andrade/otp,vladdu/otp,uabboli/otp,isvilen/otp,uabboli/otp,isvilen/otp,erlang/otp,lrascao/otp,uabboli/otp,electricimp/otp,potatosalad/otp,lrascao/otp,vladdu/otp,vladdu/otp,electricimp/otp,erlang/otp,kvakvs/otp,uabboli/otp,mikpe/otp,dgud/otp,getong/otp,dumbbell/otp,jj1bdx/otp,vladdu/otp,kvakvs/otp,bjorng/otp,emacsmirror/erlang,g-andrade/otp,potatosalad/otp,rlipscombe/otp,isvilen/otp,isvilen/otp,jj1bdx/otp,emacsmirror/erlang,bjorng/otp,emacsmirror/erlang,jj1bdx/otp,bjorng/otp,uabboli/otp,uabboli/otp,uabboli/otp,potatosalad/otp,getong/otp,vinoski/otp,emacsmirror/erlang,lrascao/otp,erlang/otp,g-andrade/otp,dgud/otp,potatosalad/otp,vinoski/otp,bjorng/otp,ferd/otp,jj1bdx/otp,kvakvs/otp,dgud/otp,potatosalad/otp,erlang/otp,g-andrade/otp,dgud/otp,erlang/otp,vladdu/otp,mikpe/otp,rlipscombe/otp,lrascao/otp,kvakvs/otp,vinoski/otp,g-andrade/otp,erlang/otp,bjorng/otp,kvakvs/otp,mikpe/otp,getong/otp,isvilen/otp,g-andrade/otp,emacsmirror/erlang,uabboli/otp,emacsmirror/erlang,isvilen/otp,vladdu/otp,ferd/otp,dgud/otp,getong/otp,dumbbell/otp,dumbbell/otp,dgud/otp,kvakvs/otp,ferd/otp,isvilen/otp,vinoski/otp,rlipscombe/otp,rlipscombe/otp,mikpe/otp,emacsmirror/erlang,dumbbell/otp